我有一个powershell脚本来生成HTML报告,该报告包括所有虚拟机和一台hyper-v服务器的快照。
起初,我使用Get-VM
获得了所有虚拟机。然后,我遍历该列表,并使用Get-VMSnapshot
获取一个虚拟机的所有快照。
我遇到的问题是,我看不到如何从$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 }