Desligamento do computador de rede, a menos que um processo específico esteja em execução

0

Desejo criar um arquivo de lote para encerrar uma lista de computadores na minha rede. Isso é bastante fácil com psshutdown do PSTools ou até mesmo o comando de desligamento regular.

Meu problema é que desejo que o script verifique se um determinado processo está sendo executado no computador remoto e, se estiver, não desligue esse computador.

Por exemplo, se o remotepc001 estiver executando o notepad.exe, não o desligue.

Alguém sabe de uma boa maneira de fazer isso?

    
por Kobi Versano 17.02.2013 / 11:57

1 resposta

2

Você pode usar tasklist (interno) ou PsList (parte do PsTools). Ambos suportam computadores remotos. Meu exemplo será usar tasklist (quem não gosta de built-ins?) Em um computador local, já que é tudo o que tenho que testar no momento. Você pode adicionar os argumentos corretos para se conectar a um computador remoto; verifique os argumentos disponíveis com tasklist /? .

tasklist /FI "IMAGENAME eq processname.exe" | find /I "processname.exe"
if ERRORLEVEL 1 goto NotRunning else goto Running

:NotRunning
echo The program is not running.

goto :eof

:Running
echo The program is running.

goto :eof

Divisão:

tasklist é usado para listar todo o processo que corresponde ao nome especificado. Você pode usar curingas ( * ) para fazer correspondências parciais.

find é usado para verificar se o nome do processo fazia parte da saída tasklist . Ele irá definir o errorlevel (basicamente, o valor de retorno) para 1 (falha) se não for encontrado, caso contrário, 0 (bem-sucedido). Isso é usado porque é mais fácil verificar o nível de erro do que a saída de texto de tasklist quando em um if .

Em seguida, usamos goto para ir para o bloco correto, separando a execução dependendo se o processo está sendo executado ou não. Você também pode simplesmente executar os comandos na instrução if . goto :eof basicamente significa ir para o final do programa (EOF = End Of File), ou seja, sair.

    
por 17.02.2013 / 13:25

Tags