根據您使用Measure-VM的嘗試,我假設您使用的是Hyper-V。我用類似這樣的東西在我的Hyper-V腳本:
(Get-VM dechiro1).HardDrives | ForEach {
$GetVhd = Get-VHD -Path $_.Path
[pscustomobject]@{
Name = $_.Name
Type = $GetVhd.VhdType
ProvisionedGB = ($GetVhd.Size/1GB)
CommittedGB = ($GetVhd.FileSize/1GB)
}
}
基本上,每個虛擬機的硬盤,使用Get-VHD獲得VHD的詳細信息,其中包括全尺寸的,什麼我稱爲提交大小(磁盤上的實際空間)。
輸出示例:
Name Type ProvisionedGB CommittedGB
---- ---- ------------- -----------
Hard Drive on IDE controll... Dynamic 20 0.00390625
Hard Drive on IDE controll... Dynamic 40 0.00390625
編輯:
如果你想從每個VM拉,幷包括與返回的對象的虛擬機的名稱,你更喜歡使用管道的形式,這將工作:
Get-VM | ForEach { $Vm = $_; $_.HardDrives } | ForEach {
$GetVhd = Get-VHD -Path $_.Path
[pscustomobject]@{
Vm = $Vm.Name
Name = $_.Name
Type = $GetVhd.VhdType
ProvisionedGB = ($GetVhd.Size/1GB)
CommittedGB = ($GetVhd.FileSize/1GB)
}
}
你是什麼意思,「真正被使用」?磁盤是否精簡配置?你的意思是客戶操作系統在虛擬機內使用的是什麼? – TessellatingHeckler