Hi,
i would like to list the Datastore,SpaceProvisioned,Spaceused for several VMs.
I wrote the following lines, but this didn´t work:
}
What´s wrong with it? Am i far away of the right script?
Thx in advance
Chakoe
The next script lists each vDisk in a seperate line. The VMDiskProvisioned and VMDiskUsed properties are still those from the vm.
$vms = Get-VM v998spwmv10175n & {foreach ( $vm in $vms ) { $vmname = $vm.Name $vmdiskprovisioned = $vm.ProvisionedSpaceGB $vmdiskused = $vm.UsedSpaceGB foreach ($HardDisk in (Get-Harddisk -VM $vm)) { $HardDisk | Select-Object -Property @{N="VMname"; E={$vmname }}, @{N="VMDiskPath"; E={$HardDisk.FileName}}, @{N="VMDiskProvisioned"; E={$vmdiskprovisioned }}, @{N="VMDiskUsed"; E={$vmdiskused }} } }}
This should work:
}
Thanks,
Hi,
works better, but not perfect yet 🙂
The valkue of the Variable $vmdiskpath looks like:
{@{Filename=[DatastoreName] VMname/VMname.vmdk}, @{Filename=[DatastoreName] VMName/VMname_1.vmdk}}
Question: How do i remove the {@{Filename= and the brackets from the value, and how do i handle the variable, if the VM has more than one vDisk?
It is possible that a vm has more than one hard disk. Try the following PowerCLI script:
$vms = Get-VM v998spwmv10175n & {foreach ( $vm in $vms ) { $vmname = $vm.Name $vmdiskprovisioned = $vm.ProvisionedSpaceGB $vmdiskused = $vm.UsedSpaceGB $vmdiskpath = [string]::Join(" ",(Get-Harddisk -VM $vm | Select-Object -ExpandProperty Filename)) $vm | select @{N="VMname"; E={$vmname }}, @{N="VMDiskPath"; E={$vmdiskpath }}, @{N="VMDiskProvisioned"; E={$vmdiskprovisioned }}, @{N="VMDiskUsed"; E={$vmdiskused }} } }
Hi,
nearly perfect....is it possible to represent each vDisk ( if a VM has more than one vDisk ) in a separate Line? I think about the "select -First 1" Filter...
The next script lists each vDisk in a seperate line. The VMDiskProvisioned and VMDiskUsed properties are still those from the vm.
$vms = Get-VM v998spwmv10175n & {foreach ( $vm in $vms ) { $vmname = $vm.Name $vmdiskprovisioned = $vm.ProvisionedSpaceGB $vmdiskused = $vm.UsedSpaceGB foreach ($HardDisk in (Get-Harddisk -VM $vm)) { $HardDisk | Select-Object -Property @{N="VMname"; E={$vmname }}, @{N="VMDiskPath"; E={$HardDisk.FileName}}, @{N="VMDiskProvisioned"; E={$vmdiskprovisioned }}, @{N="VMDiskUsed"; E={$vmdiskused }} } }}
Thank you very much!!!