異なる場所から実行されているアプリケーションのインスタンスが 3 つあります。すべてのプロセスには類似した名前が付いています。
特定の場所から起動されたプロセスを強制終了するにはどうすればよいですか?
異なる場所から実行されているアプリケーションのインスタンスが 3 つあります。すべてのプロセスには類似した名前が付いています。
特定の場所から起動されたプロセスを強制終了するにはどうすればよいですか?
アプリケーション パスを取得できます。
Get-Process | Where-Object {$_.Path -like "*something*"} | Stop-Process -WhatIf
これは、ローカル マシンでのみ機能します。リモート プロセスを終了するには:
Get-WmiObject Win32_Process -Filter "ExecutablePath LIKE '%something%'" -ComputerName server1 | Invoke-WmiMethod -Name Terminate
クラス内のMainModule
プロパティProcess
(PowerShellを介して呼び出すことができます)を確認できます。
foreach (Process process in Process.GetProcesses())
{
if (process.MainModule.FileName == location)
{
process.Kill();
}
}
また、このコードの呼び出し中に発生する可能性のある例外についても検討します。これは、存在しなくなったプロセス(GetProcessが最後に呼び出されてから強制終了された)または権限がないときにプロセスにアクセスしようとした場合に発生する可能性があります。