All
I started a powercli below to extract harddisk information and generate a csv file.
The problem here is that information being exported is only for one vm, and not all vms included in GetVMList.txt are being exported.
Anyone can give me solution, I appreciate any comments.
$VMs = Get-content E:\vmw\GetVMList.txt
Write-Host "Collecting Vm hard disks information..." -ForegroundColor Yellow
Foreach ($vm in $VMs){
Get-vm $vm | get-harddisk | select Parent,StorageFormat,DiskType,Filename,CapacityGB,Persistence,Name | Export-Csv e:\vmw\output\VM_disks.csv –NoTypeInformation
}
Write-Host "Done." -foreground Green
You are overwriting the CSV file inside the ForEach loop for each VM.
You can transform this into 1 pipeline construct, something like this
Get-VM -Name (Get-content -Path E:\vmw\GetVMList.txt) |
Get-HardDisk |
select Parent,StorageFormat,DiskType,Filename,CapacityGB,Persistence,Name |
Export-Csv e:\vmw\output\VM_disks.csv –NoTypeInformation
Write-Host "Done." -foreground Green
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
I can manage to get 2 scripts to get VM with Thin or Thick details and another for VM disk space.
For VM thin for Thick Details
Get-VM | ForEach {Get-harddisk -VM $_ | Select-Object -Property Parent, Name, StorageFormat, CapacityGB, @{N='OS Total Free Space GB of all partitions'; E={ [math]::round((Get-VMGuest $vm | ForEach-Object { ($_.Disks) } | Measure-Object -property FreeSpaceGB -sum).Sum)}}} | convertTo-html | out-file C:\Users\USERA\Desktop\VMThin&Thick.htm
For VM Disk Space DQFanFeedback
ForEach ($VM in Get-VM ){($VM.Extensiondata.Guest.Disk | Select @{N="Name";E={$VM.Name}},DiskPath, @{N="Capacity(GB)";E={[math]::Round($_.Capacity/ 1GB)}}, @{N="Free Space(GB)";E={[math]::Round($_.FreeSpace / 1GB)}}, @{N="Free Space %";E={[math]::Round(((100* ($_.FreeSpace))/ ($_.Capacity)),0)}})}
NOTE - To get the VM Disk space output in html format use below given lines. (copy above given lines in a txt file and save it as FreeSpace.ps1 (what ever name you can give) and run the below lines in powercli.
hello,
I am looking for an update of this script
i want to find all the vm they have a disk more than 1 tera.
but it is not working
Get-vm | get-harddisk Where-Object CapacityGB {$_.property -gt "655360"}
Thanks for your help.
Zohna
Where did you get that number?
The property CapacityGB contains the number of GB, so the where-clause should be
Get-VM | Get-Harddisk | Where-Object {$_.CapacityGB -gt 1024}
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
thanks u @LucD
It is OKay for now, i am a beginner ins powershell.
i take this number in another result.
Zohan