通过服务名

时间:2018-03-19 13:43:29

标签: powershell

对于我正在创建的程序/脚本,我需要使用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,只知道服务的名称?

4 个答案:

答案 0 :(得分:1)

codesign_allocate: file not in an order that can be processed (code signature data out of place)

感谢Mathias R. Jessen,这个命令有效。

答案 1 :(得分:1)

任务列表/ s 服务器名称。 这可以用来获取在远程服务器上运行的任务列表

答案 2 :(得分:0)

试试这个

Get-Process -ComputerName "ServerName" -Name notepad | stop-Process

您需要能够在远程机器中停止进程

答案 3 :(得分:0)

在Powershell中杀死相应的进程,一行:

Get-Process -PID (Get-WmiObject -CN $RemotePCName -filter 'name="spooler"' -Class Win32_service).processID | Stop-Process -Force