OS: Vista Unternehmen
Wenn ich zwischen meinem Heim- und meinem Büronetzwerk wechsle, habe ich immer Probleme mit der Verbindung zum Netzwerk. Fast immer muss ich den Diagnosedienst in 'Netzwerk- und Freigabecenter' verwenden, und das Problem wird gelöst, wenn ich die Option zum Zurücksetzen des Netzwerkadapters verwende.
Dies dauert viel Zeit (3-4 Minuten) und so versuchte ich, entweder einen Befehl oder ein Powershell-Skript/Cmdlet zu finden, mit dem ich den Netzwerkadapter direkt zurücksetzen kann und mir diese 5 Minuten jedes Mal ersparen kann, wenn ich wechseln muss zwischen den Netzwerken. Irgendwelche Hinweise?
Sie können WMI in PowerShell verwenden, um dies zu erreichen. Angenommen, es gibt einen Netzwerkadapter, dessen Gerätename Wireless enthält, könnte die Befehlsfolge etwa wie folgt aussehen:
$adaptor = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like "*Wireless*"}
$adaptor.Disable()
$adaptor.Enable()
Wenn Sie dies mit Windows Vista ausführen, müssen Sie möglicherweise die PowerShell als Administrator ausführen.
Zitrax's Antwort:
netsh interface set interface "InterfaceName" DISABLED
netsh interface set interface "InterfaceName" ENABLED
war 99% von dem, wonach ich gesucht hatte. Die einzige Information, die er ausgelassen hat, war, dass diese Befehle als Administrator ausgeführt werden müssen. Führen Sie cmd.exe entweder als Administrator aus, geben Sie sie ein oder speichern Sie sie in einer Batchdatei. Führen Sie dann die Datei als Administrator aus, indem Sie mit der rechten Maustaste darauf klicken und im Kontextmenü "Als Administrator ausführen" auswählen.
Sie können dies auch in einer .BAT- oder .CMD-Datei versuchen:
ipconfig /release
ipconfig /renew
arp -d *
nbtstat -R
nbtstat -RR
ipconfig /flushdns
ipconfig /registerdns
Diese Befehle sollten die gleichen Funktionen wie "Diagnose und Reparatur" für den Netzwerkadapter ausführen, sind jedoch WEG schneller!
Lassen Sie mich wissen, wenn dies hilft! JFV
Siehe diesen Artikel in The Scripting Guys, "Wie kann ich meinen Netzwerkadapter aktivieren oder deaktivieren?"
tl/dr:
Restart-NetAdapter -Name "Your Name Here"
Sie können die Liste mit aufrufen
Get-NetAdapter
Der folgende Befehl hat für mich funktioniert (auf Server 2012 R2):
Restart-NetAdapter -Name "Ethernet 2"
Ersetzen Sie "Ethernet 2" durch den Namen Ihres Adapters.
Hinweis: So erstellen Sie ein PS-Skript: Erstellen Sie ein neues Dokument in Notepad, speichern Sie es als script.PS1
, fügen Sie die Zeile oben ein und speichern Sie. Klicken Sie mit der rechten Maustaste auf die Datei -> Mit PowerShell ausführen.
Mehr dazu in diesem technet Artikel.
Was für mich funktioniert hat:
netsh interface show interface
um den Schnittstellennamen anzuzeigen, der für mich "Ethernet 2" war, und dann:
netsh interface set interface "Ethernet 2" DISABLED
netsh interface set interface "Ethernet 2" ENABLED
Der Post von Scott hat mich dazu inspiriert, eine sehr kleine C #/.Net-Konsolenanwendung zu schreiben, die System.Management verwendet. Sie können den Adapter, den Sie neu starten möchten, als Befehlszeilenparameter bezeichnen. Der Code zeigt einige Grundlagen zum Umgang mit Geräten, die auch für andere nützlich sein können.
using System;
using System.Management;
namespace ResetNetworkAdapter
{
class Program
{
static void Main(string[] args)
{
if (args.Length != 1)
{
Console.WriteLine("ResetNetworkAdapter [adapter name]");
Console.WriteLine("disables and re-enables (restarts) network adapters containing [adapter name] in their name");
return;
}
// commandline parameter is a string to be contained in the searched network adapter name
string AdapterNameLike = args[0];
// get network adapter node
SelectQuery query = new SelectQuery("Win32_NetworkAdapter");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection adapters = searcher.Get();
// enumerate all network adapters
foreach (ManagementObject adapter in adapters)
{
// find the matching adapter
string Name = (string)adapter.Properties["Name"].Value;
if (Name.ToLower().Contains(AdapterNameLike.ToLower()))
{
// disable and re-enable the adapter
adapter.InvokeMethod("Disable", null);
adapter.InvokeMethod("Enable", null);
}
}
}
}
}
Dies ist, was ich auf PowerShell Version 5.0.10586.122 Windows 10 Home verwende. Dies muss als Administrator ausgeführt werden:
Restart-NetAdapter -Name "ethernet"
So führen Sie dies als Administrator aus, ohne die Benutzerkontensteuerung deaktivieren oderR-Click-> Als Administrator ausführen ": (Dies ist eine einmalige Aufgabe.)
Restart-NetAdapter -Name "ethernet"
In eine .ps1
- Datei ein.ps1
> Verknüpfung erstellen)Jetzt müssen Sie jedes Mal, wenn Sie die Verknüpfung ausführen, auf dem UAC-Bildschirm auf "Ja" klicken und der in der Datei .ps1
Angegebene Adapter wird zurückgesetzt.
So rufen Sie mithilfe von PowerShell die Namen der verfügbaren Adapter ab (WLAN, LAN usw.):
Get-NetAdapter
Sie können eine NIC auch mit dem Befehl wmic neu starten:
Schnittstellen-ID abrufen:
C:\>wmic nic get name, index
Deaktivieren Sie NIC (InterfaceID: 1):
wmic path win32_networkadapter where index=1 call disable
Aktivieren Sie NIC (InterfaceID: 1):
wmic path win32_networkadapter where index=1 call enable
Quelle: http://www.sysadmit.com/2016/04/windows-reiniciar-red.html
Sie können auch das Microsoft-Dienstprogramm devcon.exe verwenden.
Führen Sie zuerst devcon listclass net
aus, um Ihre Geräte-ID zu finden.
Verwenden Sie dann diese Geräte-ID in diesem Befehl: devcon restart PCI\VEN_16*
(verwenden Sie den Platzhalter '*'
, um nicht die gesamte ID-Zeichenfolge eingeben zu müssen).
Danke für die Info, dass es mit netsh ..__ gemacht werden kann. Ich habe ein einfaches "Repair.bat" -Skript geschrieben:
@echo off
netsh interface set interface "%1" DISABLED
netsh interface set interface "%1" ENABLED
Nennen Sie es einfach mit dem Namen der Netzwerkkarte, umbenannt in "WLAN", damit ich keine Leerzeichen habe. Geben Sie "Repair WLAN" in cmd ein oder sehen Sie, wie Sie es in das Netzwerk-Kontextmenü integrieren können ...
ipconfig/flushdns
ipconfig/erneuern
Sind die 2 Cmdlets, die ich zum Aktualisieren meiner Verbindung verwende. Sie müssen den Router nicht unbedingt aus- und wieder einschalten, um ein starkes Signal wiederzuerlangen (ich weiß, dass das Aus- und Wiedereinschalten den Speicher des Routers löscht, aber das ist es wirklich).
Sie können auch netsh
-Befehle ausführen. Beispiel:
netsh wlan disconnect && netsh wlan connect [ONE OF YOUR WLAN PROFILES]
Sie können eine Liste dieser "Profile" erhalten mit:
netsh wlan show profiles