【发布时间】:2018-08-28 02:28:17
【问题描述】:
我需要使用 PowerShell 为我正在创建的程序/脚本杀死远程计算机上服务背后的进程。
问题在于进程并不总是具有相同的 PID,并且名称也不总是相同。唯一始终相同的是名称。
我发现我可以用这个命令获取服务的PID:
taskkill /s rasmuspc /u rasmus123 /p 12345 /PID (Get-WmiObject Win32_Service|where{$_.Name -eq 'Spooler'}).ProcessID /F
我使用这个命令跳过tasklist,所以我可以让它自动化而不是手动查找和输入PID。
但是该命令只会从我自己的计算机上获取 PID,我看不到有没有办法在远程 PC 上获取服务的 PID,只知道服务的名称?
【问题讨论】:
-
你试过
Get-WmiObject -ComputerName remotepcname吗? -
你为什么不用
Invoke-Command远程控制整个命令? -
Mathias R. Jessen 是正确的。在您的 Get-WMI 命令中,您不会告诉 WMI 您要从哪台计算机获取 PID,因此它默认获取您运行命令的服务的 PID,而不是您要连接的服务器。
-
谢谢 Mathias 和 Jeroen,它成功了。
标签: powershell