Como esperar pela rede em um script em lotes ao inicializar no Windows Server?

3

Estou executando um arquivo em lotes com o TaskScheduler "Na inicialização do sistema" em um Windows Server 2012 no Azure, e observei que não há rede por 20 a 60 segundos após o início do lote. Atualmente eu adicionei uma espera constante com ping, e funciona na maior parte do tempo, mas às vezes não. Você pode me sugerir um método mais robusto para esperar até que a rede esteja disponível? (para enviando pedidos de e-mail e / ou http)

    
por robert4 13.07.2014 / 16:10

3 respostas

1

Use a opção "Iniciar somente se esta conexão de rede estiver disponível".

    
por 15.07.2014 / 10:54
1

Você parece querer usar o lote para isso, então aqui vai. Você pode querer executar isso pelos caras do SO, já que eles são melhores programadores do que eu. Na verdade, eu tenho a lógica principal de ( link ) complete com o motivo pelo qual testar se um ping passará por esse método é preferível a outros.

@echo off

set IPaddress=%%1  REM add IP address as command line argument or just static

:TEST
ping -n 1 %IPaddress% | find "TTL=" >nul
if errorlevel 1 (
    goto RETRY
) else (
    goto DOSTUFF
)

:RETRY
ping 127.0.0.1 -n 11>nul REM waits given amount of time, set to 10 seconds
goto TEST

:DOSTUFF
do stuff REM Do stuff
exit

Basicamente, apenas pings em intervalos de um segundo, verifica se um ping bem-sucedido ocorre. Se assim for, faz o que você está tentando roteiro.

Eu não codifiquei o IPaddress para o qual você deseja verificar a conectividade ICMP básica, mas adicionei-o como um argumento de linha de comando. Ou você pode simplesmente codificar isso.

Talvez você queira verificar a sintaxe novamente, já que eu não testei isso.

EDIT: Valor de ping alterado para 11 para refletir um atraso real de 10 segundos.

    
por 15.07.2014 / 17:51
0

De acordo com esta resposta no superusuário , você pode inscrever sua tarefa agendada no evento "a rede está disponível".
Contanto que você não filtre por uma rede específica, acho que deve funcionar.

    
por 15.07.2014 / 11:07