我有一个下面的脚本,它附加到停止命令的 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 中,服务不会停止并保持停止状态,除非与其相关的进程结束。
我在日志中收到的错误如下:“没有可用的实例。”
有人可以在这方面帮助我吗?