Windows 服务在 Windows Server 2012 中无法停止,但在 Windows 7 上却很容易停止

Windows 服务在 Windows Server 2012 中无法停止,但在 Windows 7 上却很容易停止

我有一个下面的脚本,它附加到停止命令的 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 中,服务不会停止并保持停止状态,除非与其相关的进程结束。

我在日志中收到的错误如下:“没有可用的实例。”

有人可以在这方面帮助我吗?

相关内容