Eu tenho um script abaixo que é anexado a um serviço windows no comando stop: -
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
)
)
)
que funciona bem no Windows 7 e o serviço pára rapidamente em 1 a 2 segundos, mas no caso do Windows Server 2012 o serviço não para e permanece em estado de parada a menos que o processo relacionado a ele seja encerrado.
O erro que recebo nos logs é o seguinte: "Nenhuma instância disponível."
Alguém pode me ajudar nesse sentido?