Tente usar sc stop
em vez de matar o serviço. É um método preferido.
Eu tenho um arquivo de lote que usa taskkill
para interromper vários serviços. Os comandos são assim:
taskkill /s \myServer /f /fi "Services eq MyService"
O problema é que cada comando leva muito tempo (cerca de 1 minuto). Como existem vários desses comandos, o arquivo em lote é muito lento.
Existe alguma maneira de acelerar taskkill
?
Tente usar sc stop
em vez de matar o serviço. É um método preferido.
Além do que o @pk disse, se você precisar usar o taskkill, você poderia criar um arquivo bat para cada tarefa para matar, então criar um arquivo bat para chamar cada arquivo em lote.
Ainda seria lento para cada taskkill terminar, mas eles seriam executados ao mesmo tempo, acelerando o script completo.
Deve ser algo assim:
cmd /c c:\bat\killbatch1.bat
cmd /c c:\bat\killbatch2.bat
cmd /c c:\bat\killbatch3.bat
Eu tentei mudar para sc
, mas também foi muito lento. Há algum problema subjacente (possivelmente relacionado à rede?), Mas não consegui encontrá-lo.
Acabei movendo o serviço parando o código para um script .vbs usando o WMI usando as informações aqui .