web-dev-qa-db-ja.com

名前でプロセスを検索するには?

SearchIndexer.exeが原因で、実際には外部ハードドライブであるデバイスを停止できません。

タスクマネージャーを調べてこのアプリケーションを閉じようとしましたが、[プロセス]タブで見つかりませんでした。

このプロセスを名前で検索し、プロセスIDを取得して強制終了できますか?

5
Santosh Kumar

SearchIndexerなどのプロセスを探している場合-これは、PowerShellで実行するのはかなり簡単です。

Get-Processは実行中のプロセスのリストを表示します。この例では、PC上の100以上のプロセスのリストではなく、列ヘッダーに関心があるため、Select -first 1にパイプしました: enter image description here


次は、プロセスを取得する方法を理解したので、これを特定のプロセスに絞り込む必要があります。以下に、これを行う4つの方法を示します。 enter image description hereGet-Process Search*は、検索で始まるすべてのプロセスを返します

Get-Process SearchIndexerは、存在する場合、その1つのプロセスのみを返します

Get-Process | Where {$_.Name -eq "SearchIndexer"}はすべてのプロセスを検索し、SearchIndexerと呼ばれるプロセスのみを選択します

Get-Process | Where {$_.ProcessName -Like "SearchIn*"}はすべてのプロセスを取得し、「SearchIn」で始まるプロセスに絞り込みます。

補足として、どちらの側でもワイルドカードを使用できるため、 `rchInde"でも必要なプロセスが返されます。


次に、プロセスを強制終了します-Stop-Processにパイプします: enter image description here ..しかし、それはうまくいきませんでした!


停止するには-一部のプロセスと同様に、PowerShellを管理者として実行する必要があります: enter image description here ..しかし、プロンプトが表示されます!

...下部のエラーを無視して、プロセスがもう存在しないことを証明しました

-Forceスイッチを追加すると、プロンプトが消えます! enter image description here


しかし、何度も繰り返し実行しようとすると、エラーが気に入らない: enter image description here ...そのため、少し異なる方法で処理する必要があります。その1つのプロセスを明示的に停止する代わりに、すべてのプロセスを取得し、必要なプロセス(存在する場合)までフィルタリングして、それらを(存在する場合)強制終了します。 enter image description here


最後に-Windowsが特定のサービス/プロセスを再起動するのを好み、すべての準備が整ったので、(必要に応じて)スケジュールされたタスクアクションとして追加します。

9
Fazer87

Get-Processの代替:

Get-WmiObject Win32_Process | select commandline | Select-String -Pattern "SearchIndexer"
1
tmm1