2016-05-18 7 views
2

Ich habe ein Powershell-Skript zum Generieren eines HTML-Berichts, der alle VMs und Snapshots eines Hyper-V-Servers enthält.Hyper-V 2012R2 VM-Snapshot-Datei mit Powershell abrufen

Zuerst bekomme ich alle vms mit Get-VM. Dann durchlaufe ich diese Liste und bekomme alle Snapshots für eine VM mit Get-VMSnapshot.

Das Problem, das ich bekam, ist, dass ich nicht sehen kann, wie ich von $VMSnapshot zu der realen Datei komme, um seine Größe zu bekommen.

Hier ist mein Code:

$VMs = Get-VM -ComputerName $Computers 
foreach ($VM in $VMs) { 
    $VMSnapshots = Get-VMSnapshot -VMName $VM.VMName -ComputerName $VM.ComputerName | Select ComputerName, VMNAME, CreationTime, Path, Name | sort CreationTime 
    foreach ($VMSnapshot in $VMSnapshots) { 
     #How to get the filesize of that snapshot? 
    } 
} 

Ich weiß, dass sein möglich, die Dateigröße mit $VMSnapshotSize gci -Path $VMSnapshot.Path -Filter *.avhd*, zu bekommen, aber als ich habe keine Beziehung zwischen $VMSnapshot und $VMSnapshotSize da es, dass mehr als eine Momentaufnahme ist Verzeichnis.

Antwort

1

Versuchen Sie diesen Code:

Get-VMSnapshot -VMName $VM.VMName | select -ExpandProperty HardDrives | % { Get-VHD $_.Path | select Path, FileSize }