2014-11-24 73 views
2

我有以下問題: 我需要一個代碼來關閉遠程機器上給定路徑上的所有正在運行的進程。在遠程機器上殺死從給定路徑運行的多個進程

到目前爲止,我已經發現並提出了這兩條線,但沒有一條真正起作用。

Get-Process | Where-Object {$_.Path -like "\\$computername\C$\Program Files (x86)\Adobe\Adobe Reader 10.0\Reader\**"} | Stop-Process -Force  

這是第二行,我發現,但仍然不希望與我合作:)

Get-WmiObject Win32_Process -Filter "ExecutablePath LIKE '\\$computername\C$\Program Files (x86)\Adobe\Adobe Reader 10.0\Reader\'" -ComputerName $computername | Invoke-WmiMethod -Name Terminate  

我會很樂意得到一些建議。相信的時候,這是一些很簡單的do..I希望是.. :)

+2

我會嘗試使用gwmi的'-computername'參數,然後指定一個本地路徑,您要查詢本地PC與位於遠程計算機上的路徑過程,我不認爲這是你想要什麼做? – Paul 2014-11-24 12:34:25

回答

1

像這樣的東西應該工作:

(Get-WmiObject Win32_Process -ComputerName $computerName | ?{ $_.ExecutablePath -like "*Program Files (x86)\Adobe\Adobe Reader 10.0\Reader*" }).Terminate() 

您可能必須調整「喜歡」的表達,但是。

+0

保羅,大衛 - 非常感謝!在你的幫助下,我能夠使一切工作:) – dhex 2014-11-24 13:19:19

0

解決此問題的另一種方法是使用PSRemoting在機器上本地執行該命令。

Invoke-Command $computername -script { 
    Get-Process | Where-Object {$_.Path -like "c:\Program Files (x86)\Adobe\Adobe Reader 10.0\Reader\*"} | Stop-Process -Force 
}