プロパティの値を素早く調べる(Quick search of property value)
全てのプロパティに対して名前と値を同時に確認する
オブジェクトが持つプロパティの名前は「get-member」で簡単に調べられますが、各プロパティの値はすぐには調べられません。
PropertyGridの活用 - PowerShell Memoで紹介した「ObjectViewer」は、プロパティの名前と値が同時に確認できて非常に便利です。
今回紹介するのは、コンソールでプロパティの名前と値を同時に確認するスクリプトです。
引数として渡したオブジェクトが持つ全てのプロパティに対して、「名前」と「値」の両方を表示します。
get-PropertyValue.msh
PARAM([Object]$obj) if($obj -ne $null) { $obj | gm -MemberType Properties | ` foreach {">>" + $_.Name + " : " + $obj.($_.Name)} }
Exsample
MSH C:\> (ps)[15] Handles NPM(K) PM(K) WS(K) VS(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 490 31 7964 9080 108 10.70 1572 explorer
(ps)[15]は「Explorer」のプロセスです。
「Explorer」のプロセスのプロパティを調べてみましょう。
MSH C:\> get-PropertyValue (ps)[15] >>Handles : 490 >>Name : explorer >>NPM : 31912 >>PM : 8155136 >>VS : 113668096 >>WS : 9297920 >>__NounName : Process >>BasePriority : 8 >>Container : >>EnableRaisingEvents : False >>ExitCode : >>ExitTime : >>Handle : 2864 >>HandleCount : 490 >>HasExited : False >>Id : 1572 >>MachineName : . >>MainModule : System.Diagnostics.ProcessModule (Explorer.EXE) >>MainWindowHandle : 131132 >>MainWindowTitle : >>MaxWorkingSet : 1413120 >>MinWorkingSet : 204800 (省略)
プロパティの値が一望できて便利です。