2017-03-24 2 views
1

私はまだpowershellとpowercliを学んでいますが、誰かがこれで私を助けてくれるのだろうかと思っています。スナップショットステータス用の余分な列を持つVMインベントリを作成しますか?

ALLのインベントリを表示しようとしています(スナップショットが存在する場合は "yes"の値を持つスナップショットの列を持つVM)。

私はCSVファイルに余分作成した列と出力があります。スナップショットがnullでない場合

Get-VM | select Name, PowerState, Snapshot | Export-Csv -Path "c:\VMs\vminventory.csv" -NoTypeInformation 

そして、どのように「はい」を取得する方法を:

$VMs = Get-VM 
ForEach ($VM in $VMs) { 
$VMSnapshot = Get-VM -name $VM | get-Snapshot 
If ($VMSnapshot) {Write-Host "yes" } 
} 

誰もがどのように任意のアイデアを持っていますこれらのコンセプトを組み合わせて、このようなものを出力しますか?おそらく

VM Inventory Results

答えて

2

、このようなものは、(私はPowerCLIのは、テストする必要はありません)動作します。ここでは、オブジェクトに新しいプロパティを追加し、そのオブジェクトをcsvにエクスポートします。あなたはおそらくその場でプロパティを構築することができます。

また、get-vmの追加呼び出しを削除しました。これは、時間を大幅に節約します。

$VMs = Get-VM 
ForEach ($VM in $VMs) { 
    $VMSnapshot = $vm | Get-Snapshot 
    If ($VMSnapshot) { 
     $row = $VM | select Name,Powerstate 
     $row | Add-Member-MemberType NoteProperty -Name "Snapshot" -Value "Yes" 
     $row | Export-CSV -Path "c:\VMs\vminventory.csv" -Append -NoTypeInformation 
    } 
} 

あなたがこれを行う、すべてのVMの(だけではなく、スナップショットを持つもの)をエクスポートする必要がある場合:

$VMs = Get-VM 
ForEach ($VM in $VMs) { 
    $VMSnapshot = $vm | Get-Snapshot 
    $row = $VM | select Name,Powerstate 
    If ($VMSnapshot) { 
     $row | Add-Member-MemberType NoteProperty -Name "Snapshot" -Value "Yes" 
    } 
    else { 
     $row | Add-Member-MemberType NoteProperty -Name "Snapshot" -Value "No" 
    } 
    $row | Export-CSV -Path "c:\VMs\vminventory.csv" -Append -NoTypeInformation 
} 
+0

ワウは本当に近いです!応答していただきありがとうございます。しかし、リストされたすべてのVM(11台)、スナップショット列に1台(6台)のVMのみが必要です。助言がありますか? – Oneil

+0

ありがとう!これまでのところ、私はこのエラーが発生します。調査中... Export-CSV:CSVコンテンツをc:\ VMs \ vminventory.csvファイルに追加できません。追加されたオブジェクトには、Snapshotという次の列に対応するプロパティはありません。不一致のプロパティを続行するには、-Forceパラメーターを追加し、 を実行してコマンドを再試行します。 – Oneil

+0

はい - 最後に追加したときに-forceが機能しました。上記の最終コード。どうもありがとうございます!!! – Oneil

-1

が!!!!!!!!ありがとう最終的なコードはここにあります:

$VMs = Get-VM 
ForEach ($VM in $VMs) { 
    $VMSnapshot = $vm | Get-Snapshot 
    $row = $VM | select Name,Powerstate 
    If ($VMSnapshot) { 
     $row | Add-Member -MemberType NoteProperty -Name "Snapshot" -Value "Yes" 
    } 
    $row | Export-CSV -Path "c:\VMs\vminventory.csv" -Append -NoTypeInformation -Force 
} 
関連する問題