Powershell を使用して、複数の仮想サーバーから SCSI ハードウェアを取得し、特定の各サーバーのオペレーティング システムを取得しようとしています。コードで見つけたい特定の SCSI ハードウェアを取得できましたが、各サーバーのオペレーティング システムを適切に取得する方法がわかりません。また、見つかったすべてのデータを csv ログ ファイルに送信しようとしていますが、powershell スクリプトで複数の列を作成する方法がわかりません。
これが私のコードです(ほとんど動作しますが、何かが間違っています):
$log = "C:\Users\me\Documents\Scripts\ScsiLog.csv"
Get-VM | Foreach-Object {
$vm = $_
Get-ScsiController -VM $vm | Where-Object { $_.Type -eq "VirtualBusLogic" } | Foreach-Object {
get-VMGuest -VM $vm } | Foreach-Object{
Write-output $vm.Guest.VmName >> $log
}
}
このコードを実行してもエラーは発生しませんが、実行するたびに、OS ではなくサーバーの名前しか取得できません。また、作成しているcsvログのサーバーの名前とは異なる列にOSを表示するために何をする必要があるのか わかりません。
各仮想マシンの OS バージョンを取得し、それを csv ログ ファイルの別の列に出力するには、コードで何を変更する必要がありますか?