or1ko's diary

日々を書きます

起動中のプロセスの引数を取得する方法

PowerShellの標準のコマンドレットには、Get-Processというものがあるが、この戻り値から取得できるプロセスのオブジェクトをたどっても、実行の際に渡された引数を取得できないみたいだ。

StartInfoメンバがそれっぽいのだけれども、
下記のコマンドを試してみても、うまく取得できない。

> $process = Get-Process foo
> $process.StartInfo.Arguments
  なにも表示されない

どうにか取得できないかと色々調べたら、WMIを使う方法を見つけた。win32_processを使う。
以下のように使う。

> $process = Get-WmiObject win32_process | ? { $_.Caption -like "*foo*" }
> $process.CommandLine
 ※ 引数が表示される