Назад | Перейти на главную страницу

TaskKill очень медленно

У меня есть командный файл, в котором используется taskkill чтобы остановить несколько сервисов. Команды выглядят так:

taskkill /s \\myServer /f /fi "Services eq MyService"

Проблема в том, что каждая команда занимает очень много времени (около 1 минуты). Поскольку таких команд несколько, командный файл работает очень медленно.

Есть ли способ ускорить taskkill?

Попробуйте использовать sc stop вместо того, чтобы убить сервис. Это предпочтительный метод.

http://technet.microsoft.com/en-us/library/cc742107(WS.10).aspx

В дополнение к тому, что сказал @pk, если вы должен используйте taskkill, вы можете создать один bat-файл для каждой задачи, которую нужно убить, а затем создать bat-файл для вызова каждого пакетного файла.

По-прежнему будет медленно завершаться каждое задание, но они будут выполняться одновременно, ускоряя ваш полный скрипт.

Должно выглядеть примерно так:

cmd /c c:\bat\killbatch1.bat
cmd /c c:\bat\killbatch2.bat
cmd /c c:\bat\killbatch3.bat

Я пробовал переключиться на sc но это было также очень медленно. Есть некоторая основная проблема (возможно, связанная с сетью?), Но я не смог ее найти.

В итоге я переместил код остановки службы в сценарий .vbs с помощью WMI, используя информацию Вот.