事象
Powershellにて検索をかける際に使うWhere-Object
にて項目が取得できない。
Where-Object {$_.Name -eq "Cpu.Quantum"}
具体的には以下コマンドで何も表示されない。
PS > Get-VMHost | Get-AdvancedSetting | ft -AutoSize | Where-Object {$_.Name -eq "Cpu.Quantum"}
環境情報
PSVersion : 5.1
原因
表示列のフォーマットを調整するft -AutoSizeが不要。
同コマンドが入ったパイプ部分を削除すると値が取得できるGet-AdvancedSettingは
PS > Get-VMHost | Get-AdvancedSetting | Where-Object {$_.Name -eq "Cpu.Quantum"} Name Value Type Description ---- ----- ---- ----------- Cpu.Quantum 200 VMHost
以下、補足です。
補足
例えばPowerCLIにてESXiの詳細パラメータを取得するGet-AdvancedSettingはデフォルトで利用すると以下のように左詰めに値が入り、長い場合は値が潰れて読めません。
... UserVars.ProductL... /locker/packages/... VMHost Net.vNicNumDeferr... 12 VMHost ...
よって事象に記載した通りAutoSizeを入れることで
PS > Get-VMHost | Get-AdvancedSetting | ft -AutoSize
以下のように列の幅が変更されることで値がすべて表示されます。
... UserVars.ProductLLockerLocation /locker/packages/vmtoolsRepo/ Net.vNicNumDeferredReset 12 ...
ただし、「Where-Object」で絞る際はどう設定を入れると値がヒットしないので結果が空になります。
このあたりは出力をすべて文字列として扱うUNIXとの差異なので同コマンドを使う場合はこの仕様を認識しておく必要があります。
以上、ご参考になれば幸いです。