私の問題:
実行中の特定のプロセスのプロセス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を返すにはどうすればよいですか?可能であれば、これに含まれる開始時刻を確認するのもよいでしょうが、それはそれほど重要ではありません。太字でリストされているプロパティ。
もちろん、私はあきらめて尋ねた直後に私の答えを見つけます。
PowerShellにあまり詳しくないので、Select-Object CommandLine
からCommandLine
を削除して、何が得られるかを確認しました。すべて。これにはプロセスIDが含まれます。代わりに、ID
を試す場合は、ProcessId
を試す必要があります。それがチケットでした。
したがって、最終的な解決策は次のとおりです。
Get-WmiObject Win32_Process -Filter "name = 'cscript.exe'" | Select-Object CommandLine, ProcessId| format-list