Param ( [Parameter( Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $false, Position=0, ParameterSetName='VM Name' )]$vcServer, [Parameter( Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, ValueFromRemainingArguments = $false, Position=0, ParameterSetName='VM Name' )]$vmName ) Begin { Add-PSSnapin VMware.VimAutomation.Core Add-PSSnapin VMware.VimAutomation.License Add-PSSnapin VMware.DeployAutomation $cred = Get-Credential Connect-VIServer -Server $vcServer -Credential $cred $Disks = @() $VmView = Get-View -Viewtype VirtualMachine | ? {$_.Name -eq $vmName} $Controllers = $VmView.Config.Hardware.Device | ? {$_.DeviceInfo.Label -like "SCSI controller *"} Foreach ($Controller in $Controllers) { $VDisks = $VmView.Config.Hardware.Device | ? {$_.ControllerKey -eq $Controller.Key} Foreach ($VDisk in $VDisks) { $Disk = New-Object PSObject -Property @{ SCSIController = $Controller.DeviceInfo.Label DiskName = $VDisk.DeviceInfo.Label IscsiId = "$($Controller.BusNumber):$($VDisk.UnitNumber)" DiskFile = $VDisk.Backing.FileName DiskSize = $VDisk.CapacityInKB * 1KB / 1GB } $Disks += $Disk } } $Disks | FT -AutoSize Disconnect-VIServer -Server $vcServer -Confirm:$false }