異なる場所から実行している3つのアプリケーションインスタンスがあります。すべてのプロセスの名前は似ています。ファイル名でプロセスを終了する
どのように特定の場所から起動されたプロセスを強制終了できますか?
異なる場所から実行している3つのアプリケーションインスタンスがあります。すべてのプロセスの名前は似ています。ファイル名でプロセスを終了する
どのように特定の場所から起動されたプロセスを強制終了できますか?
あなたはアプリケーションのパスを取得することができます。リモートプロセスを終了するには:
Get-WmiObject Win32_Process -Filter "ExecutablePath LIKE '%something%'" -ComputerName server1 | Invoke-WmiMethod -Name Terminate
Process
クラスの中のMainModule
プロパティ(powershellで呼び出すことができます)をご覧ください。
foreach (Process process in Process.GetProcesses())
{
if (process.MainModule.FileName == location)
{
process.Kill();
}
}
このコードを呼び出す際に発生する可能性のある例外も考えてみます。これは、存在しなくなった(GetProcessが最後に呼び出されてから強制終了された)プロセスにアクセスしようとしている場合、またはアクセス権がない場合にプロセスにアクセスしようとしている場合に発生する可能性があります。
Get-Process | Where-Object {$_.Path -like "*something*"} | Stop-Process -WhatIf
ローカルマシンでのみ動作します:
これを試してみてください:それは私のセットアップ(のPowerShellのバージョン4にうまく仕事を働かなかったよう http://technet.microsoft.com/en-us/library/ee177004.aspx
Stop-Process -processname notepad
私は、少しシェイレヴィの答えを改善したいと思います)
Get-Process | Where-Object {$_.Path -like "*something*"} | Stop-Process -processname {$_.ProcessName}
以下のコマンドは、「something」がパスの一部またはコマンドラインパラメータであるプロセスを強制終了します。また、場所c:\my-place
からsomething.ps1
を実行するPowerShellのスクリプトなどpowershell -command c:\my-place\something.ps1
を終了させるために有用証明:
gwmi win32_process | Where-Object {$_.CommandLine -like "*something*"} | % { "$(Stop-Process $_.ProcessID)" }
ソリューションは、私の64ビット版のWindows 10マシン上でローカルに動作します。
最初の解決策はありましたが、何も設定していません – rpeshkov
- ちょっと安全スイッチだったのですか? –
すべてのプロセスを '-like" * "'でマッチングしてコマンドを実行すると、システムがクラッシュします –