ここで楽しい時間があります: 列などに仮想サーバーの値を含む配列があります。各サーバーが通過する ForEach ループがあり、ディスクのカウントが 0 のサーバーを除外しようとしています。これが私の構文です:
$VMInfo.Disks = Get-HardDisk -VM $VM | Measure-Object | Select-Object Count
エクスポートされた CSV ファイルで、ハードディスクがない場合、列の値は @{Count=0} になります。したがって、この if ステートメントは、レポートからこれらのサーバーを除外するのに適していると考えました (この if ステートメントは、ForEach 全体のコマンドの一部です)。
if ($VMInfo.Disks -ne "@{Count=0}") {
$Report += $VMInfo
}
ただし、if ステートメントを含めると、エクスポートされた CSV ファイルにハード ドライブが含まれていないサーバーが表示されます。何か案は?$VMInfo.Disks -ne "@{Count=0}" コマンドを別のものに変更する必要がありますか? どんな助けでも大歓迎です!
編集: -ne "@{Count=0}" の代わりに -gt 0 を使用しようとしましたが、次のエラーが発生しました:
オブジェクトが同じ型ではないか、オブジェクト "@{Count=2}" が "IComparable" を実装していないため、"@{Count=2}" を "0" と比較できません。
編集:「@{Count=0}」の代わりに @{Count=0} を使用しようとしましたが、違いはありませんでした。CSV には、@{Count=0} を含む列がまだありました。