どうも、Tです。
PowerCLIをいじっていて、ExtensionDataがよくわからなかったので備忘録です。
目次
ExtensionDataの場所
PowerCLIで仮想マシンオブジェクトをGetして「Select-Object *」などですべてのプロパティを見るとExtensionDataが表示されます。
Get-VM -Name w2k19 | Select-Object *
確認したわけではありませんが、仮想マシン以外のオブジェクト(ホストやネットワークなど)でも基本的に保持しているプロパティになります。
ExtensionDataの用途
Get-VMだけだと非常に簡素な情報しかでてきません。
「Get-VM -Name w2k19 | Select-Object *」などを使うことで先ほどのような多くの情報を表示することが可能です。
さらに詳しい情報を取得したいときに、ExtensionDataプロパティの中身を見ると参照することができます。
(Get-VM -Name w2k19).ExtensionData
ExtensionDataプロパティにはほかにも多くの情報が含まれており、下記では仮想マシンの稼働時間(秒)を取得しています。結果は250秒稼働しています。これを割っていけば稼働日数、時間の計算が行えます。
(Get-VM -Name w2k19).ExtensionData.Summary.QuickStats.UptimeSeconds
Get-View
ExtensionDataプロパティを見る別の方法として、Get-Viewコマンドレットがあります。VMwareの情報を見てるとGet-Viewを使う方が一般的っぽいようです。
(Get-VM -Name w2k19 | Get-View)
(Get-VM -Name w2k19 | Get-View).Summary.QuickStats.UptimeSeconds
Get-Viewも使い方は多いので、詳しくはリファレンスをご参照ください。
何がうれしいのか
PowerCLIで用意されているコマンドレットでは参照できない情報が扱えるのが一番大きい恩恵ではりますが、ESXiホストの電源ポリシーのようにExtensionDataプロパティ内のメソッドを使わないと設定できない項目がチラホラあります。
このような設定を行うにも、ExtensionDataが何なのかを理解しておくことは重要かなと思います。上記の設定の意味を調べていてExtensionDataにぶつかりました・・・・。
参考
まとめ
PowerCLIのコマンドレットだけでも出来ることは多いですが、ExtensionDataを扱うことでさらにできることが広がりそうです。