web-dev-qa-db-fra.com

Script de commande/Powershell pour réinitialiser une carte réseau

OS: entreprise Vista

Lorsque je bascule entre mon réseau domestique et celui de mon entreprise, je dois toujours faire face à des problèmes pour me connecter au réseau. Presque toujours, je dois utiliser le service de diagnostic dans "Réseau et centre de partage" et le problème est résolu lorsque j'utilise l'option de réinitialisation de la carte réseau.

Cela prend beaucoup de temps (3-4 min) et j’essayais donc de trouver une commande ou un script/cmdlet powershell que je peux utiliser directement pour réinitialiser l’adaptateur réseau et me faire gagner ces 5 minutes à chaque fois que je dois permuter. entre les réseaux. Des pointeurs?

23
Mohit

Pour ce faire, vous pouvez utiliser WMI à partir de PowerShell. En supposant qu'il existe un adaptateur réseau dont le nom de périphérique contient Wireless , la série de commandes peut ressembler à ceci:

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

N'oubliez pas que si vous utilisez Windows Vista, vous devrez peut-être exécuter PowerShell en tant qu'administrateur .

23
Scott Saad

La réponse de Zitrax:

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

était 99% de ce que je cherchais. L'information qu'il a laissée de côté, cependant, était que ces commandes devaient être exécutées en tant qu'administrateur. Exécutez cmd.exe en tant qu'administrateur et saisissez-les, ou stockez-les dans un fichier de commandes, puis exécutez ce fichier en tant qu'administrateur en cliquant dessus avec la souris et en choisissant "Exécuter en tant qu'administrateur" dans le menu contextuel. 

9
Andrew C

Vous pouvez également essayer ceci dans un fichier .BAT ou .CMD:

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

Ces commandes devraient faire la même chose que "Diagnostiquer et réparer" pour la carte réseau, mais est beaucoup plus rapide!

Faites-moi savoir si cela aide! JFV

5
JFV

Voir cet article de The Scripting Guys, "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
Mike L

La commande suivante a fonctionné pour moi (sur Server 2012 R2):

Restart-NetAdapter -Name "Ethernet 2"

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

Remarque: pour créer un script PS: créez un nouveau document dans le Bloc-notes, enregistrez sous le nom script.PS1, insérez la ligne ci-dessus et enregistrez. Cliquez avec le bouton droit sur le fichier -> Exécuter avec PowerShell.

Pour plus voir cet article technet .

4
Leigh

Ce qui a fonctionné pour moi:

netsh interface show interface

pour afficher le nom de l'interface qui était pour moi "Ethernet 2" puis:

netsh interface set interface "Ethernet 2" DISABLED
netsh interface set interface "Ethernet 2" ENABLED
4
Zitrax

Le poste de Scott m'a inspiré pour écrire une très petite application console C #/.Net, qui utilise System.Management. Vous pouvez nommer l'adaptateur que vous souhaitez redémarrer en tant que paramètre de ligne de commande. Le code présente quelques notions de base sur la gestion des périphériques, qui pourraient également s'avérer utiles.

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

Cliquez ici pour en savoir plus sur PowerShell version 5.0.10586.122 Windows 10 Home. То должно быть запущено от имени администратора:

Restart-NetAdapter -Name "ethernet"

Тобы запустить то как администратор без необходимости "выключать UAC" или "R-Click-> Запуск от имени администратора ": (то одноразовое задание)

  • Поместите вышеуказанный Restart-NetAdapter -Name "ethernet" в файл .ps1
  • Создать новый ярлык (R-Clickв файле .ps1> Создать ярлык)
  • На ярлыкеR-Click> Свойства> Ярлык> Цель> (добавьте Powershell.exe, чтобы предшествовать расположению/имени файла, как показано ниже. Также добавьте местоположение/имя файла в двойные кавычки ( "), также показанные ниже.

enter image description here

  • На ярлыкеR-Click> Свойства> рлык> Дополнительно> "Запуск от имени администратора"

Теперь каждый раз, когда вы запускаете ярлык, вам нужно будет просто нажать "Да" на экране UAC, и он будет сбрасывать адаптер, указанный в файле .ps1.

Cliquez ici pour en savoir plus sur PowerShell (WiFi, réseau local et réseau local):

Get-NetAdapter

3
Santa

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

Obtenir l'ID d'interface:

C:\>wmic nic get name, index 

Désactiver NIC (ID d'interface: 1):

wmic path win32_networkadapter where index=1 call disable

Activer NIC (ID d'interface: 1):

wmic path win32_networkadapter where index=1 call enable

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

1
Lunudeus1

Vous pouvez également utiliser l'utilitaire Microsoft devcon.exe .

Tout d’abord, lancez devcon listclass net pour trouver votre ID de périphérique.

Utilisez ensuite cet ID de périphérique dans cette commande: devcon restart PCI\VEN_16* (utilisez le caractère générique '*' pour éviter de devoir saisir la chaîne d'ID complète).

1
Andrew Strong

Merci pour l'info que cela peut être fait avec netsh . J'ai écrit un simple script "Repair.bat":

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

Appelez-le simplement avec le nom de la carte réseau, renommée c.-à-d. "WLAN" afin que je ne dispose pas d'espaces, tapez "Réparer le réseau local sans fil" dans cmd fait l'affaire ..__Je le placerai dans system32 et en effectuerai une tâche ou voyez comment l'intégrer au menu contextuel du réseau ...

0
Alahndro

ipconfig/flushdns

ipconfig/renew 

Sont les 2 cmdlets que j'utilise pour actualiser ma connexion. Vous n'avez pas nécessairement besoin d'allumer et d'éteindre le routeur pour rétablir un signal puissant (je sais que le cycle d'alimentation efface la mémoire du routeur, mais c'est vraiment ça).

0
user3830646

Vous pouvez également essayer les commandes netsh. 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
Protector one