Hyper-V 2012R2使用powershell获取虚拟机快照文件

Hyper-V 2012R2使用powershell获取虚拟机快照文件,powershell,snapshot,hyper-v,Powershell,Snapshot,Hyper V,我得到了一个powershell脚本来生成一个HTML报告,其中包括一个hyper-v服务器的所有VM和快照 首先,我使用getvm获取所有VM。然后我循环浏览该列表,并使用getvmsnapshot获取一个vm的所有快照 我遇到的问题是,我看不到如何从$VMSnapshot到实际文件以获得其大小 这是我的密码: $VMs = Get-VM -ComputerName $Computers foreach ($VM in $VMs) { $VMSnapshots = Get-VMSnap

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

首先,我使用
getvm
获取所有VM。然后我循环浏览该列表,并使用
getvmsnapshot
获取一个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 }