Windows PowerShell でオブジェクトのプロパティ名を配列で取得する

PowerShell で変数に格納したオブジェクトのプロパティ名を配列で取得する方法を紹介します。

ソースコード

特に前提条件もないですが、調べたい対象オブジェクトが $obj という変数に格納されているとします。

$propNames = $obj | Get-Member -MemberType Properties | Select-Object -ExpandProperty Name

これだけで $propNames には $obj にはこのオブジェクトのもつプロパティの名前が列挙されているはずです。

あとは foreach で回すなり、焼くなりしていただければ OK です。

あまり必要ないと思いますが、軽く説明しておくと、 Get-Member -MemberType Properties$obj がもつすべてのメンバープロパティを取得し、 Select-Object -ExpandProperty NameName (プロパティ名) を展開しています。

なんのことはないことですが、意外と悩むところかもしれませんので、助けになれば幸いです。

kenzauros