it-swarm.com.de

Befehls-/Powershell-Skript zum Zurücksetzen eines Netzwerkadapters

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?

23
Mohit

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.

23
Scott Saad

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. 

9
Andrew C

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

5
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
4
Mike L

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.

4
Leigh

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
4
Zitrax

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);
        }
      }
    }
  }
}
3
Claudio Maranta

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.)

  • Fügen Sie den obigen Restart-NetAdapter -Name "ethernet" In eine .ps1 - Datei ein
  • Erstellen Sie eine neue Verknüpfung (R-Click in der Datei .ps1> Verknüpfung erstellen)
  • Auf der Verknüpfung, R-Click > Eigenschaften> Verknüpfung> Ziel> (Hängen Sie Powershell.exe wie unten gezeigt an den Speicherort/Dateinamen an. Schließen Sie auch den Speicherort/Dateinamen in doppelte Anführungszeichen (") ein (siehe auch unten).

enter image description here

  • Auf der Verknüpfung, R-Click > Eigenschaften> Verknüpfung> Erweitert> "Als Administrator ausführen" (Aktivieren Sie dieses Kontrollkästchen.)

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

3
Santa

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

1
Lunudeus1

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).

1
Andrew Strong

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 ...

0
Alahndro

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).

0
user3830646

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
0
Protector one