- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try like this
Function Get-VMDiskInfo {
[CmdletBinding()]
Param (
[Parameter(Mandatory=$true,
ValueFromPipeline=$True,
ValueFromPipelineByPropertyName=$true)]
[Alias('Name')]
$VM
)
PROCESS{
$VMView = Get-View -ViewType VirtualMachine -Filter @{"Name" = $VM}
$output = @()
ForEach ($VirtualSCSIController in ($VMView.Config.Hardware.Device | Where {$_.DeviceInfo.Label -match “SCSI Controller”})){
ForEach ($VirtualDiskDevice in ($VMView.Config.Hardware.Device | Where {$_.ControllerKey -eq $VirtualSCSIController.Key})){
$VMSummary = “” | Select VM,Disk, SCSI, DiskType, DiskFormat, DiskSizeGB, DiskFile
$VMSummary.VM = $VM
$VMSummary.SCSI = [string]::Concat($VirtualSCSIController.BusNumber,":",$VirtualDiskDevice.UnitNumber)
$VMSummary.Disk = $VirtualDiskDevice.DeviceInfo.Label
#pegando info do Get-Harddisks
$VMSummary.DiskType = &{
switch -regex ($VirtualDiskDevice.Backing.GetType().Name){
"Flat" {
"Flat"
if($VirtualDiskDevice.Backing.ThinProvisioned){$VMSummary.DiskFormat = "Thin"}
else{$VMSummary.DiskFormat = "Thick"}}
"Raw" {
"Raw" + $VirtualDiskDevice.Backing.CompatibilityMode.TrimEnd("Mode")
}
Default {"Unknown"}
}
}
$VMSummary.DiskSizeGB = [Math]::Round(($VirtualDiskDevice.CapacityInKb/1MB),2)
$VMSummary.DiskFile = $VirtualDiskDevice.Backing.FileName
$output += $VMSummary
}
}
Write-Output $output
}
}
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference