2017-05-28 47 views
0

我有4-5個具有用戶名「OWNER」(假設)的進程(如java.exe,javaw.exe等)。以下是過濾java.exe進程並在它屬於「OWNER」時將其殺死的腳本。我需要你的幫助來修改這個,以便任何與「OWNER」有關的進程在找到時都會被殺死。列出並殺死具有相同用戶名的PowerShell中的多個進程

+0

@ 4c74356b41這裏的格式是指? – RishuA

+0

讓我知道如果格式化看起來好吧或不.. – RishuA

+0

'@ {} gwmi win32_process' - 這看起來不正確 – 4c74356b41

回答

4

Get-Process只要做到這一點:

get-process -IncludeUserName | where username -like $username | stop-process 

基本上你的整個腳本可以用這條線

+0

V3沒有includeusername – RishuA

0

Get-Process-IncludeUsername開關代替只適用於WMF 5.0。

WMI是此處的選項。

您可以通過檢查所有者等於相應的用戶來終止流程。

Get-WmiObject -Class Win32_Process | Where-Object -FilterScript { 
$_.GetOwner.User -eq "$Owner" } | Invoke-WmiMethod -Name Terminate 

編輯:上面的代碼是一個襯墊,能省則出在一個變量和foreachGet-WmiObject通過收集打印過程id並調用terminate()方法,而不是使用Invoke-WmiMethod

注意:此代碼未經過測試

+0

這似乎是個好主意。雖然我首先想打印進程ID並想殺死那個..如何用你輸入的命令來做到這一點.. – RishuA

+0

你不會爲你的任務從StackOverflow得到一個現成的腳本,我已經編輯了答案,給你最大提示。 –

+0

在我粘貼的實際腳本中,我希望用作該部分的一些依賴項。希望你明白了。我會盡力幫助你們提供的所有幫助。 – RishuA