2014-02-14 60 views
0

您可以幫我使用我的Powershell腳本嗎?我對Powershell相當陌生,但是我的老闆想讓我儘快完成這個任務。使用PowerShell獲取VHD信息

對於每個虛擬機在我們的虛擬機管理程序(Server 2012中),我們希望相關的VHD文件,併爲每個VHD文件:
- 文件(允許的上限)
的大小 - - 文件
的位置該文件(當前分配)
的實際大小 - 該類型的分配:厚或薄
- 快照文件

我想出了這個迄今爲止的大小 - 快照文件
的位置(以及我發現的)(*是我們的HV名):

Get-VM –ComputerName ***** | 
Get-VMHardDiskDrive | 
Select-Object -Property VMName, ComputerName, Path, Filesize, Size, Disktype, Snapshot | 
Sort-Object -Property VMName 

不知怎的,這並不給出文件大小,disktype,大小和快照的任何輸出..

回答

1

負載的Hyper-V模塊。運行「'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」

+0

這工作,但它不給我的尺寸。添加大小和文件大小使我可以在外出Gidview中使用這些名稱,但它沒有填寫。 – user3310263

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 
}