web-dev-qa-db-ja.com

WindowsのコマンドラインからすべてのヘッドレスChrome=インスタンスを強制終了するにはどうすればよいですか?

MacとLinuxでは実行できます

pkill -f "(chrome)?(--headless)"

すべてのヘッドレスChromeインスタンスを強制終了します。

Windowsで実行できる同様のものが欲しいのですが。

5
Liam Aharon

残念ながら、CommandLineは通常のプロセス管理コマンドでは簡単に取得できないため、WMIを使用する必要があります。これはコマンドをより複雑にする傾向がありますが、それをエイリアス化したり、再利用できるスクリプト/関数で非表示にしたりできます。

PowerShellでこれを行う方法の例を次に示します。

Get-CimInstance Win32_Process -Filter "Name = 'chrome.exe' AND CommandLine LIKE '%--headless%'" | %{Stop-Process $_.ProcessId}

少し一般化すると、次のことも得られます。

$name = 'chrome.exe'
$cmdcontains '--headless'
Get-CimInstance Win32_Process -Filter "Name = '$name' AND CommandLine LIKE '%$cmdcontains%'" | %{Stop-Process $_.ProcessId}

または、Nameはより緩いマッチングを使用することも、現在行っているように、CommandLineで純粋にフィルター処理することもできます。

Get-CimInstance Win32_Process -Filter "CommandLine LIKE '%chrome.exe%--headless%'" | %{Stop-Process $_.ProcessId}

より一般的には、スクリプトを使用してコマンドレットに拡張できます。 https://technet.Microsoft.com/en-us/library/ff677563.aspx


これをcmdで実行する場合も同じプロセスが適用されますが、wmicの出力からPIDを取得してtaskkillに渡す必要があります。

2
Bob