Commande / script Powershell pour réinitialiser un adaptateur réseau

OS: Vista enterprise

lorsque je passe d'un réseau domestique à un réseau de bureau à un autre, j'éprouve toujours des difficultés à me connecter au réseau. Presque toujours, je dois utiliser le service de diagnostic dans 'Network and sharing center'et le problème est résolu lorsque j'utilise l'option reset network adapter.

cela prend beaucoup de temps (3-4 min) et donc j'ai essayé de trouver soit une commande, soit un script powershell/cmdlet que je peux utiliser directement pour réinitialiser l'adaptateur réseau et économisez - moi ces 5 minutes chaque fois que je dois passer d'un réseau à l'autre. Les pointeurs?

23
demandé sur dsolimano 2008-10-16 07:00:39

13 réponses

Vous pouvez utiliser WMI de L'intérieur de PowerShell pour accomplir ceci. Supposons qu'il y ait un adaptateur réseau dont le nom de périphérique a sans Fil, la série de commandes pourrait ressembler à quelque chose comme ce qui suit:

$adaptor = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like "*Wireless*"}
$adaptor.Disable()
$adaptor.Enable()

Rappelez-vous, si vous êtes en cours d'exécution avec cette Fenêtre Vista, vous devrez peut-être exécuter le PowerShell en tant qu'Administrateur.

23
répondu Scott Saad 2008-10-16 05:09:45

Zitrax de réponse:

netsh interface set interface "InterfaceName" DISABLED
netsh interface set interface "InterfaceName" ENABLED

a 99% de ce que je cherchais. La seule pièce de l'information qu'il reste, cependant, était que ces commandes doivent être exécutées en tant qu'administrateur. Exécuter cmd.exe en tant qu'administrateur et tapez-Les, ou stockez-les dans un fichier batch, puis lancez ce fichier en tant qu'administrateur en cliquant dessus et en choisissant "exécuter en tant qu'administrateur" dans le menu contextuel.

9
répondu Andrew C 2014-11-30 03:56:23

Vous pouvez aussi essayer ceci dans une .BAT or .Fichier CMD:

ipconfig /release
ipconfig /renew
arp -d *
nbtstat -R
nbtstat -RR
ipconfig /flushdns
ipconfig /registerdns

ces commandes devraient faire les mêmes choses que "diagnostiquer et réparer" pour l'adaptateur réseau, mais est beaucoup plus rapide!

Laissez-moi savoir si cela aide! JFV

5
répondu JFV 2008-10-16 04:15:00

Ce qui a fonctionné pour moi:

netsh interface show interface

pour afficher le nom de l'interface qui pour moi a été "Ethernet 2" et ensuite:

netsh interface set interface "Ethernet 2" DISABLED
netsh interface set interface "Ethernet 2" ENABLED
4
répondu Zitrax 2014-03-05 10:00:51
Restart-NetAdapter -Name "Ethernet 2"

remplacer "Ethernet 2" par le nom de votre adaptateur.

Note: pour créer un script PS: créer un nouveau document dans Notepad, enregistrer est comme script.PS1, insérez la ligne ci-dessus et l'enregistrer. Cliquez avec le bouton droit de la souris sur le fichier -> Exécuter avec PowerShell.

Pour en savoir plus voir cette technet l'article.

4
répondu Leigh 2016-09-07 13:44:32

Voir cet article de scripteurs "Comment puis-je activer ou désactiver mon adaptateur réseau?"

tl / dr:

Restart-NetAdapter   -Name "Your Name Here"

vous pouvez obtenir la liste en utilisant

Get-NetAdapter
4
répondu Mike L 2018-09-18 13:37:27

Le post de Scott m'a inspiré à écrire un très petit C# / .Net application console, qui utilise le Système.Gestion. Vous pouvez nommer l'adaptateur, que vous voulez redémarrer, comme paramètre de ligne de commande. Le code montre quelques bases sur la manipulation des appareils, qui pourrait être utile pour d'autres aussi.

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
répondu Claudio Maranta 2011-03-30 14:02:41

C'est ce que j'utilise sur PowerShell version 5.0.10586.122 Windows 10 Home. Ce doit être exécuté en tant qu'administrateur:

Restart-NetAdapter -Name "ethernet"

exécuter ce qu'un administrateur sans avoir à "désactiver le contrôle de compte d'utilisateur" ou "R-Cliquez Sur-> Exécuter en tant qu'administrateur": (Ceci est une tâche de temps)

  • Mettre le ci-dessus Restart-NetAdapter -Name "ethernet" dans un .ps1 le fichier
  • Créer un nouveau raccourci (R-Cliquez Sur.ps1 fichier > Créer Raccourci)
  • Sur le Raccourci, R-Cliquez Sur > Propriétés > Raccourci > Cible > (Ajouter Powershell.exe pour précéder l'Endroit/nom de fichier comme indiqué ci-dessous. Incluez également la position / Le nom du fichier avec des guillemets doubles ("), également montrés ci-dessous.

enter image description here

  • Sur le Raccourci, R-Cliquez Sur > propriétés > raccourci > avancé > "exécuter en tant qu'administrateur"(Cochez cette case)

Maintenant chaque fois que vous lancez le raccourci, vous n'avez qu'à cliquer sur "Oui" sur L'écran UAC et il réinitialisera l'adaptateur que vous avez spécifié dans le .ps1 fichier.

pour obtenir les noms des adaptateurs disponibles en utilisant PowerShell(WiFi, LAN etc.,):

Get-NetAdapter

3
répondu Santa 2016-03-19 11:20:20

vous pouvez aussi utiliser L'utilitaire Microsoft devcon.exe.

tout d'Abord, exécutez devcon listclass net pour trouver votre ID de périphérique.

puis utilisez cet ID de périphérique dans cette commande:devcon restart PCI\VEN_16* ('*' joker pour éviter d'entrer toute la chaîne D'identification).

1
répondu Andrew Strong 2010-03-07 10:45:35

vous pouvez également redémarrer un NIC en utilisant la commande wmic:

Obtenir de l'interface ID:

C:\>wmic nic get name, index 

Désactiver la carte réseau (InterfaceID:1):

wmic path win32_networkadapter where index=1 call disable

Activer la carte réseau (InterfaceID:1):

wmic path win32_networkadapter where index=1 call enable

Source:http://www.sysadmit.com/2016/04/windows-reiniciar-red.html

1
répondu Lunudeus1 2016-04-19 10:44:59

Vous pouvez également essayer netsh commandes. Exemple:

netsh wlan disconnect && netsh wlan connect [ONE OF YOUR WLAN PROFILES]

vous pouvez obtenir une liste de ces "profils", en utilisant:

netsh wlan show profiles
0
répondu Protector one 2012-12-29 21:29:59

ipconfig / flushdns

ipconfig / renew

sont les 2 cmdlets que j'utilise pour rafraîchir ma connexion. Vous n'avez pas nécessairement besoin d'activer le routeur pour récupérer un signal fort( je sais que le power cycling efface la mémoire du routeur mais c'est tout).

0
répondu user3830646 2014-07-11 18:55:19

Merci pour L'Info que cela peut être fait avec netsh. J'ai écrit une simple " réparation.chauve-souris" script:

@echo off
netsh interface set interface "%1" DISABLED
netsh interface set interface "%1" ENABLED

il suffit de l'appeler avec le nom du NIC, renommé comme "WLAN" donc je n'ai pas d'espaces, tapez "Repair WLAN" dans cmd fait le tour. Je vais le placer dans system32 et en faire une tâche ou voir comment l'intégrer dans le menu contextuel du réseau...

0
répondu Alahndro 2016-05-30 22:22:57