Перейти к основному содержанию
 

Bat-скрипт для передергивания сети на сервере Windows Server 2012 R2

Windows

Однажды наши виртуальные Windows сервера стали терять сеть. Проблему удалось выявить с сетевыми адаптерами VMware E1000. Примечательно, что в Ubuntu эти сетевухи работают без нареканий, а вот в Windows Server 2012 R2 - сеть иногда зависала. Проблему удалось устранить заменой сетевух на vmxnet3, но было несколько серверов, которые нельзя было трогать. Вот для них и пришлось накатать bat-скрипт для автоматического передёргивания сети.

Скрипт автоматически запускали в шедулере раз в 15 минут. Решение временное, но нам помогло спокойно спать по ночам. После перехода на vmxnet3 просто избавились от него.

Все IP адреса изменены, совпадения случайны. Принцип действия простой, если ни один из трёх серверов не пингуется, то сеть с названием THISISNET передёргивается.

@echo off

rem server1
set s1=10.10.20.10

rem server2
set s2=10.10.21.10

rem server3
set s3=10.10.22.10

ping -n 1 %s1% | find "TTL=" > nul
if %errorlevel%==1 (
	@ping localhost -w 1000 -n 600 > nul
	ping -n 1 %s1% | find "TTL=" > nul
	if %errorlevel%==1 (
		ping -n 1 %s2% | find "TTL=" > nul
		if %errorlevel%==1  (
			ping -n 1 %s3% | find "TTL=" > nul
			if %errorlevel%==1  (
				netsh interface set interface name = THISISNET admin = DISABLED
				@ping localhost -w 1000 -n 5 > nul
				netsh interface set interface name = THISISNET admin = ENABLED
			)
		)
	)
)

P.S. - решение заработало также и на Windows 10.