你能用我的Powershell脚本帮我吗?我是Powershell的新手,但我的老板希望我尽快完成。
对于HyperVisor(Server 2012)上的每个VM,我们需要关联的VHD文件和每个VHD文件:
- 文件的位置
- 文件大小(允许的最大值)
- 文件的实际大小(当前分配的)
- 分配类型:厚或薄
- 快照文件的位置
- 快照文件的大小
到目前为止,我已经想出了这个(好吧......我发现了)( * 是我们的HV名字):
Get-VM –ComputerName ***** |
Get-VMHardDiskDrive |
Select-Object -Property VMName, ComputerName, Path, Filesize, Size, Disktype, Snapshot |
Sort-Object -Property VMName
不知何故,这不会为Filesize,disktype,size和Snapshot ..
提供任何输出答案 0 :(得分:1)
加载HyperV模块。运行“'Get-VM”以查看是否已加载。然后运行这样的事情:
Get-VM –ComputerName SERVER1, SERVER2 |
Get-VMHardDiskDrive |
Select-Object -Property VMName, VMId, ComputerName, ControllerType, ControllerNumber, ControllerLocation, Path |
Sort-Object -Property VMName |
Out-GridView -Title "Virtual Disks"
答案 1 :(得分:0)
问题已经过时了,但也许有人对此感兴趣。
警告:不考虑快照
$VMget=Get-VM -computername w01s007,w01s006,w01s008 | Get-VMHardDiskDrive | Select-Object -Property vmname, vmid, computername, controllertype, controllernumber,controllerlocation,path
foreach ($VM in $VMget) {
$VHDRemotePath=$VM.Path -replace ":", "$"
$VHDRemotePath="\\"+$VM.ComputerName+"\"+$VHDRemotePath
$vhdsize= gci $VHDRemotePath | select-object @{Name="SizeGB";Expression={"{0:N2}" -f ($_.length / 1GB)}}
write-host = $VM.VMName " - " $vhdsize.SizeGB "GB - " $VM.Path
}