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?
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.
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.
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
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
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.
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
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);
}
}
}
}
}
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.
- 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
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).
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
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
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).
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...