Hyper-V 2012R2使用powershell获取VM快照文件



我得到了一个powershell脚本来生成一个HTML报告,该报告包括一个hyper-v服务器的所有VM和快照。

起初,我使用Get-VM获取所有vm。然后,我循环浏览该列表,并使用Get-VMSnapshot获取一个vm的所有快照。

我遇到的问题是,我看不到如何从$VMSnapshot到实际文件来获取其大小。

这是我的代码:

$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?
    }
}

我知道,用$VMSnapshotSize gci -Path $VMSnapshot.Path -Filter *.avhd*可以获得文件大小,但我在$VMSnapshot$VMSnapshotSize之间没有关系,因为该目录中有多个快照。

试试这个代码:

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

最新更新