web-dev-qa-db-ja.com

PowerShellを使用して、開始に使用されたプロセスID、名前、および引数を識別します

私の問題:

実行中の特定のプロセスのプロセスIDを特定する必要があります。私の問題は、cscript.exeを介して多くのプロセスを実行しているため、大量の「cscript.exe」プロセスのIDを特定することはあまり役に立ちません。これらをより適切に管理するには、cscriptに渡されたIDと引数を確認する必要があります。

これまでにやったこと:

以下を使用して、cscript.exeプロセスの開始時刻とIDを識別します。

Get-Process -Name cscript -IncludeUsername |select starttime, Id, UserName, ProcessName

この場合、ジョブが少なく、開始時間が非常に特定されているため、これは私にとって多くの場合うまくいきます。しかし、同じような開始時間にこれらのいくつかを実行しているので、これらのタスクを明確に識別することになると、自分の行動をクリーンアップする必要があります。

Cscript.exeプロセスを開始するために使用される引数を取得するための検索で、Get-WmiObjectについて学習し、現在次のように使用しています。

Get-WmiObject Win32_Process -Filter "name = 'cscript.exe'" | Select-Object CommandLine| format-list

これはかなり良いです、私はcscript.exeとそれに渡された引数を見ることができます。ただし、プロセスIDはまだ必要です。

上記のSelect-ObjectコマンドにIDを追加しようとしましたが、CommandLineの結果と一緒に空のフィールドが返されます。

私の質問:

私はPowerShellにあまり精通していません。そうは言っても、私はこれら2つのシステムクエリを組み合わせる手助けを探しています。 PowerShellを使用してプロセス名、引数、およびIDを返すにはどうすればよいですか?可能であれば、これに含まれる開始時刻を確認するのもよいでしょうが、それはそれほど重要ではありません。太字でリストされているプロパティ。

1
Josh

もちろん、私はあきらめて尋ねた直後に私の答えを見つけます。

PowerShellにあまり詳しくないので、Select-Object CommandLineからCommandLineを削除して、何が得られるかを確認しました。すべて。これにはプロセスIDが含まれます。代わりに、IDを試す場合は、ProcessIdを試す必要があります。それがチケットでした。

したがって、最終的な解決策は次のとおりです。

Get-WmiObject Win32_Process -Filter "name = 'cscript.exe'" | Select-Object CommandLine, ProcessId| format-list
1
Josh