Command/Powershell script to reset сетевой адаптер
ОС: Vista Enterprise
Когда я переключаюсь между своей домашней и офисной сетью, я всегда сталкиваюсь с проблемами при подключении к сети. Почти всегда я должен использовать диагностическую службу в "Сеть и центр обмена", и проблема решена, когда я использую опцию сетевого адаптера reset.
Это занимает много времени (3-4 минуты), поэтому я пытался найти либо команду, либо команду powershell script/cmdlet, которую я могу использовать непосредственно для reset сетевого адаптера и сохранить себя в этих 5 мин каждый раз, когда мне приходится переключаться между сетями. Любые указатели?
Ответы
Ответ 1
Вы можете использовать WMI из PowerShell для этого. Предполагая, что есть сетевой адаптер, у которого в названии устройства есть Wireless, серия команд может выглядеть примерно так:
$adaptor = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like "*Wireless*"}
$adaptor.Disable()
$adaptor.Enable()
Помните, что если вы используете это с помощью Window Vista, вам может потребоваться запустить PowerShell в качестве администратора.
Ответ 2
Ответ на Zitrax:
netsh interface set interface "InterfaceName" DISABLED
netsh interface set interface "InterfaceName" ENABLED
был 99% того, что я искал. Однако одна часть информации, которую он оставил, заключалась в том, что эти команды должны выполняться как администратор. Либо запустите cmd.exe как администратор и введите их, либо сохраните в пакетном файле, а затем запустите этот файл как администратор, щелкнув правой кнопкой мыши на нем и выбрав "Запуск от имени администратора" в контекстном меню.
Ответ 3
Вы также можете попробовать это в файле .BAT или .CMD:
ipconfig /release
ipconfig /renew
arp -d *
nbtstat -R
nbtstat -RR
ipconfig /flushdns
ipconfig /registerdns
Эти команды должны выполнять те же действия, что и "Диагностика и восстановление" для сетевого адаптера, но быстрее WAY!
Сообщите мне, если это поможет!
JFV
Ответ 4
См. эту статью от The Scripting Guys, "Как включить или отключить сетевой адаптер?"
Ответ 5
Что сработало для меня:
netsh interface show interface
чтобы показать имя интерфейса, которое для меня было "Ethernet 2", а затем:
netsh interface set interface "Ethernet 2" DISABLED
netsh interface set interface "Ethernet 2" ENABLED
Ответ 6
Сообщение Скотта вдохновило меня написать очень маленькое консольное приложение С#/.Net, в котором используется System.Management. Вы можете назвать адаптер, который вы хотите перезапустить, в качестве параметра командной строки. В коде показаны некоторые основы работы с устройствами, которые могут быть полезны и для других.
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);
}
}
}
}
}
Ответ 7
Следующая команда работала для меня (на сервере 2012 R2):
Restart-NetAdapter -Name "Ethernet 2"
Замените "Ethernet 2" на имя вашего адаптера.
Примечание. Чтобы создать PS script: создать новый документ в Блокноте, сохранить как script.PS1
, вставить строку выше и сохранить. Щелкните правой кнопкой мыши файл → Запустить с помощью PowerShell.
Подробнее см. статью technet.
Ответ 8
Вы также можете использовать утилиту Microsoft devcon.exe.
Сначала запустите devcon listclass net
, чтобы найти свой идентификатор устройства.
Затем используйте этот идентификатор устройства в этой команде: devcon restart PCI\VEN_16*
(используя подстановочный знак '*'
, чтобы избежать необходимости вводить всю строку ID).
Ответ 9
Это то, что я использую в PowerShell версии 5.0.10586.122 Windows 10 Home. Это нужно запустить как администратор:
Restart-NetAdapter -Name "ethernet"
Запустить это как администратор без необходимости "Отключить UAC" или "R-Click → Запуск от имени администратора": (Это одноразовая задача)
- Поместите вышеуказанный
Restart-NetAdapter -Name "ethernet"
в файл .ps1
- Создать новый ярлык (R-Click в
.ps1
файле > Создать ярлык)
- В ярлыке R-Click > "Свойства" > "Ярлык" > "Целевой" (Append Powershell.exe, чтобы предшествовать расположению/имени файла, как показано ниже).
Также добавьте имя Location/filename с двойными кавычками ("), также показанное ниже.
![введите описание изображения здесь]()
- В ярлыке R-Click > "Свойства" > "Ярлык" > "Дополнительно" > "Запуск от имени администратора" (отметьте этот флажок)
Теперь каждый раз, когда вы запускаете ярлык, вам нужно просто нажать "Да" на экране UAC, и он будет reset адаптером, указанным в файле .ps1
.
Чтобы получить имена доступных адаптеров с помощью PowerShell (WiFi, LAN и т.д.):
Get-NetAdapter
Ответ 10
Вы также можете перезапустить сетевой адаптер с помощью команды wmic:
Получить идентификатор интерфейса:
C:\>wmic nic get name, index
Отключить сетевую карту (InterfaceID: 1):
wmic path win32_networkadapter where index=1 call disable
Включить NIC (InterfaceID: 1):
wmic path win32_networkadapter where index=1 call enable
Источник: http://www.sysadmit.com/2016/04/windows-reiniciar-red.html
Ответ 11
Вы также можете попробовать команды netsh
. Пример:
netsh wlan disconnect && netsh wlan connect [ONE OF YOUR WLAN PROFILES]
Вы можете получить список этих "профилей", используя:
netsh wlan show profiles
Ответ 12
Используйте эту ссылку.. Это помогает reset вашим сетевым адаптерам довольно легко.
http://www.geeksinphoenix.com/blog/post/2010/12/03/Resetting-your-network-adapter-in-Windows-7.aspx
Спасибо,
AJ
Ответ 13
ipconfig/flushdns
ipconfig/renew
Я использую 2 командлета, чтобы обновить мое соединение. Вам необязательно задействовать маршрутизатор для повторного получения сильного сигнала (я знаю, что силовой цикл очищает память маршрутизатора, но это действительно так).
Ответ 14
Спасибо за информацию, что это можно сделать с помощью netsh.
Я написал простой "Repair.bat" script:
@echo off
netsh interface set interface "%1" DISABLED
netsh interface set interface "%1" ENABLED
Просто назовите его именем NIC, переименованным как "WLAN", поэтому у меня нет пробелов, введите "Repair WLAN" в cmd, трюк.
Я поместил его в system32 и сделаю задачу или посмотрю, как его интегрировать в контекстное меню сети...