回答:
PowershellおよびWMI。
Get-WmiObject Win32_Process | Select ProcessId,CommandLine
または
Get-WmiObject -Query "SELECT CommandLine FROM Win32_Process WHERE ProcessID = 3352"
プロセスに関するこの情報にアクセスするには、許可が必要であることに注意してください。そのため、知りたいプロセスが特権コンテキストで実行されている場合は、管理者としてコマンドを実行する必要があります。
| FL
コマンドの最後に追加してみてください。これにより、すべてのコマンドラインが拡張されます。遊びたいかもしれない| Select -ExpandProperty CommandLine
この情報を取得するには、WMIC.EXEを使用してWMIサブシステムを使用できます。PIDが600の場合:
wmic.exe path Win32_Process where handle='600' get name, commandline /format:list
また、名前、またはプロセスの他の特性を検索することもできます。このコマンドを使用して、すべての属性をリストします。
wmic.exe path Win32_Process get /format:list
process
エイリアスの代わりにそれを少し短くすることができpath Win32_Process
ます; 例: wmic.exe process get
他の答えは確かに良いオプションであり、コマンドラインの性質のために自動化されたシステムでうまく機能します(そして、私はそれがあなたが望んでいたものだとタグからわかります)。もちろん、GUIを使用してこの種の情報を調べたいと思う人もいるかもしれません。そこで、これらのラインに沿った代替案を紹介します。
Process Explorerは、Microsoftが管理するSysinternalsツールです。プロセスのプロパティダイアログにプロセスのコマンドラインと、それを起動した親を表示できますが、そのプロセスの名前は使用できない場合があります。プロセスプロパティダイアログは次のとおりです。
プロセスがいつ、どのような条件下で起動されたかの詳細な監査証跡が必要な場合は、プロセスモニターと呼ばれる別のSysinternalsツールを使用できます。ここでは、「プロセス開始」イベントをフィルタリングし、プロセスが起動された環境について学習し、その頃に発生した他のイベントを確認できます。それは非常に強力なプログラムです。イベントプロパティダイアログは次のとおりです。
Command Line
があります。
Ryan Riesの役立つPowerShellの回答を補完するために、deprecated-since-v3 コマンドレットの代わりに使用する-Filter
パラメーターを介した短い代替手段を使用しGet-CimInstance
ます。Get-WmiObject
# Target a process by its PID (process ID) and report its command line,
# using the PowerShell session's own PID as an example ($PID).
(Get-CimInstance Win32_Process -Filter "ProcessId=$PID").CommandLine
# Alternatively, target process(es) by name (may return multiple processes),
# using Notepad.exe as an example.
# Select-Object is used to report both the PID and the command line.
Get-CimInstance Win32_Process -Filter "Name='Notepad.exe'" |
Select-Object ProcessId, CommandLine
この-Filter
パラメーターを使用すると、を介して完全なクエリステートメントを渡すのではなくWHERE
、WQLステートメントの句を渡すことができます-Query
。