10

Когда я вхожу в Windows 7, мне нужно подождать 10 секунд, а затем отключить подключение по локальной сети (адаптер Ethernet) и затем снова включить его.

Я просмотрел предложенный ответ: включить / отключить беспроводной интерфейс в файле bat, но это кажется неактуальным, поскольку оно просто переключает текущее состояние.

Из того, что я могу сказать, мне нужно включить:

netsh interface set interface "Local Area Connection" DISABLED
netsh interface set interface "Local Area Connection" ENABLED

но я не уверен во времени ожидания или как я могу начать этот процесс после успешного входа в Windows.

Какой лучший подход здесь?

7 ответов7

19

надеюсь, это поможет

@echo on
timeout /t 10
netsh interface set interface "Local Area Connection" DISABLED
timeout /t 10
netsh interface set interface "Local Area Connection" ENABLED
7

Создайте запланированное задание Windows (taskschd.msc или Control Panel\System and Security\Administrative Tools\Task Scheduler) с помощью триггера: начните задание At log on и в задаче с дополнительными настройками на 30 seconds . Затем добавьте действие для Start a program и выберите сценарий .bat .

1

Логика такова: ping public ip (google dns 8.8.8.8), если ping не работает, затем перейдите: RESTART и перезапустите сетевой адаптер с именем "LAN", после этого цикла снова с самого начала (если ping в порядке, то ничего не делать и пинг в петле, чтобы проверить, если адаптер подключен к Интернету)

   @echo off 

    :LOOP
    ping 8.8.8.8
    IF ERRORLEVEL 1 goto RESTART
    IF ERRORLEVEL 0 goto LOOP
    :RESTART
    netsh interface set interface "LAN" disabled
    ping -n 3 127.0.0.1
    netsh interface set interface "LAN" enabled
    ping -n 15 127.0.0.1
    goto LOOP
0

Спасибо, парни,

Я использую эту команду для отключения и включения проблемного сетевого адаптера WiFi;

> @echo on
> timeout /t 10
> netsh interface set interface "Wi-Fi" DISABLED
> timeout /t 2
> netsh interface set interface "Wi-Fi" ENABLED
0
echo off
cls 
:start
echo Choice 1
echo Choice 2
set /p choice=Yes or No?
if '%Choice%'=='1' goto :choice1
if '%Choice%'=='2' goto :choice2
echo "%Choice%" is not a valid option. Please try again. 
echo
goto start
:choice1
netsh interface set interface "Ethernet" admin=Enable
goto end 
:end
pause
exit  
:choice2
netsh interface set interface "Ethernet" admin=disable
goto end 
:end
pause
exit 
0

ОЧЕНЬ ПОЛЕЗНАЯ информация здесь, но в ответах отсутствует часть, которую нужно ввести в "Локальную сеть". Я наткнулся на этот ответ:

«Первый шаг - найти имя вашего беспроводного соединения. [Щелкните правой кнопкой мыши значок WiFi]> Откройте Центр управления сетями и общим доступом> Изменить настройки адаптера. Это верхняя строка информации о соединении. Мой просто сказал Wi-Fi, но это может быть беспроводное сетевое соединение и т.д. "

Кстати, если это сетевая карта локальной сети, я думаю, вам просто нужно найти название для этого устройства.

Это было ключом, чтобы заставить это работать для меня.

-1

Реквизит доброй душе, которая помогла настроить цикл. Я немного изменил его, поскольку он отказался работать на SP3. Ниже мое обновленное отключение / включение, основанное на коде, представленном выше!

@ эхо выключено

:LOOP
ping 8.8.8.8
IF ERRORLEVEL 1 goto RESTART
IF ERRORLEVEL 0 goto LOOP
:RESTART
devcon disable "PCI\VEN_1317&*"
ping -n 3 127.0.0.1
devcon enable "PCI\VEN_1317&*"
ping -n 15 127.0.0.1
goto LOOP

Несмотря на то, что для этого требуется devcon, это легко доступный инструмент от Microsoft, который выполняет гораздо более чистую работу, включая или отключая проблемный адаптер.

http://thilina.piyasundara.org/2011/06/enabledisable-lan-interface-by-command.html показывает, как это сделать хорошо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .