У меня есть скрипт ниже, который подключен к службе Windows по команде остановки:-
wmic service where name='%NS_SERVICE_NAME%' get ProcessId | more +1 > tmp.txt
set /p NS_PID=<tmp.txt
del tmp.txt
for /f %%i in ('wmic process where "(ParentProcessId=%NS_PID%)" get ProcessId ^| more +1') do (
for /f %%a in ('wmic process where "(ParentProcessId=%%i)" get ProcessId ^| more +1') do (
echo %%a|findstr "^[-][1-9][0-9]*$ ^[1-9][0-9]*$ ^0$">nul && TASKKILL /F /PID %%a || rem
IF %ERRORLEVEL% NEQ 0 do (
exit
)
)
)
который отлично работает в Windows 7 и служба останавливается быстро через 1-2 секунды, но в случае Windows Server 2012 служба не останавливается и остается в состоянии остановки, пока не завершится связанный с ней процесс.
Ошибка, которую я получаю в журналах, выглядит следующим образом:- «Нет доступных экземпляров».
Может ли кто-нибудь помочь мне в этом отношении.