J'ai un script ci-dessous qui est attaché à un service Windows sur la commande d'arrêt: -
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
)
)
)
ce qui fonctionne bien sous Windows 7 et le service s’arrête rapidement au bout de 1 à 2 secondes, mais dans le cas de Windows Server 2012, le service ne s’arrête pas et reste en état d’arrêt sauf si le processus associé est terminé.
L'erreur que je reçois dans les journaux est la suivante: - "Aucune instance disponible."
Quelqu'un peut-il m'aider à cet égard?
get-service NameOfFirstService, NameOfSecondService | stop-service -force
rien que les noms des services