PowerShell终止其命令行检测到的Java进程

问题描述

我正在启动一个Java进程:

$global:TS = start-process -FilePath "$pathTS\jdk\bin\java.exe" -ArgumentList "-jar","`"$pathTS\TestServer.jar`"" -WorkingDirectory ` "$pathTS" ` -Passthru -WindowStyle Hidden

到目前为止工作正常。

现在我正试图终止该过程:

 Invoke-CimMethod -Query 'select * from Win32_Process where CommandLine like "Test-Server"' -MethodName "Terminate"

顺便说一句:我无法使用进程的ID终止它,因为它正在以某种方式更改。

我是PS的新手,现在陷入困境。 也许有人有主意。

谢谢! 亚历克斯

解决方法

尝试将通配符%添加到WHERE子句中,以找到在命令行中的任何位置都可以找到“ Test-Server”的所有实例:

... WHERE CommandLine like "%Test-Server%"...

ref:https://docs.microsoft.com/en-us/windows/win32/wmisdk/like-operator