Genz
Rajesh Radhakrishnan
27/01/2018 Published 3 weeks ago
Share
https://vmarena.com/wp-content/uploads/2024/11/gradient-website-hosting-illustration_23-2149246882-1.jpg

Script to List Thin provisioned virtual disks with disk size Info

It is very useful script for system admins to generate list of virtual machines having thin disks with details to CSV format .

Connect-VIServer (MyvCenter) -User (My Username)-Password (My Password)

$report = @()

foreach ($vm in Get-VM){

$view = Get-View $vm

if ($view.config.hardware.Device.Backing.ThinProvisioned -eq $true){

$row = ” | select Name, Provisioned, Total, Used, VMDKs, VMDKsize, DiskUsed, Thin

$row.Name = $vm.Name

$row.Provisioned = [math]::round($vm.ProvisionedSpaceGB , 2)

$row.Total = [math]::round(($view.config.hardware.Device | Measure-Object CapacityInKB -Sum).sum/1048576 , 2)

$row.Used = [math]::round($vm.UsedSpaceGB , 2)

$row.VMDKs = $view.config.hardware.Device.Backing.Filename | Out-String

$row.VMDKsize = $view.config.hardware.Device | where {$_.GetType().name -eq ‘VirtualDisk’} | ForEach-Object {($_.capacityinKB)/1048576} | Out-String

$row.DiskUsed = $vm.Extensiondata.Guest.Disk | ForEach-Object {[math]::round( ($_.Capacity – $_.FreeSpace)/1048576/1024, 2 )} | Out-String

$row.Thin = $view.config.hardware.Device.Backing.ThinProvisioned | Out-String

$report += $row

}}

$report | Sort Name | Export-Csv  “C:\diskinfo.csv”

Out Put 

Name Provisioned Total Used VMDKs VMDKsize  DiskUsed  Thin
VM 86.19 70  68.65 [DS-01] VM/VM.vmdk 70 52.56 TRUE