Q1: How to add additional properties to this script? $row.HostsConnected (i.e. as one joined string esxhost1|esxhost2|esxhost3), $row.VMsHosted (i.e. as one joined string VM1|VM2|VM3) $row.SiocEnabled (True/False), $row.PartofStorageCluster (True/False) $row.LUNUUID (LUNUUID (fast method there) of Datastore_Name processed during for each loop) $LogTimeStamp = (Get-Date).ToString("dd-MM-yyyy_HH_mm") $ScanDate = Get-Date -format "yyyy-MM-dd" $ScanTime = Get-Date -format "HH:mm" $ScanDateTimeStamp= Get-Date -format "yyyy-MM-dd HH:mm:00.000" Set-PowerCLIConfiguration -DefaultVIServerMode multiple -Confirm:$false Connect-Viserver "vCenter1.mydomain.corp", "vCenter2.mydomain.corp" $currDir = Split-path -parent $MyInvocation.MyCommand.Definition $outputFile = $currDir + "\All_VC" + "_" + $LogTimeStamp + "_datastore_inventory.csv" if (Test-Path $outputFile) { Remove-Item $outputFile } cls $clusterColl = @(Get-Cluster) | Sort-Object Name $i=0 $b=0 $b = $clusterColl.Count $report = New-Object Collections.Generic.LinkedList[PSObject] foreach($dc in get-datacenter) { foreach($cluster in Get-Cluster -Location $dc) { $i++ write-progress "Please wait....Datastore inventory in progress..." "Cluster ($i of $b) >> $cluster" 1 -perc (($i / $b)*100) $VMHost = $cluster | Get-VMHost | select -First 1 write-progress "Selected vSphere server: " "vSphere server >> $VMHost" 2 -perc 100 -parentid 1 $VMHost | Get-DataStore | Where-Object { $_.Name -notlike "*local*"} | Sort-Object Name | get-view | %{ $row = "" | Select-Object Rec_ID, ScanDate, ScanTime, Infra, vCenter, Datacenter, Cluster, Datastore_Name, DeviceID, BlockSizeMB,Vmfsupgradable,Version,Type, MaxBlocks,URL, VMs, VMsHosted, Hosts, HostsConnected, Capacity_GB, Used_spaceGB, Free_spaceGB, PercentFree, PercentUsed, LUN_UUID, ScanDateTimeStamp $row.Rec_ID="" $row.ScanDate = $ScanDate $row.ScanTime = $ScanTime $row.ScanDateTimeStamp=$ScanDateTimeStamp $row.vCenter=$VMHost.extensiondata.Client.ServiceUrl.Split('/')[2].replace(":443","") Switch ($row.vCenter) { "vCenter1.mydomain.corp" {$row.Infra="TDA"} "vCenter1.mydomain.corp" {$row.Infra="PROD"} } $row.Datacenter = [string]$dc.Name $row.Cluster = [string]$Cluster.Name $row.Datastore_Name = [string]$($_.info.Name) if ($_.info.URL.StartsWith("netfs")) { # write-host "Exclude NFS datastores" } else { $row.Capacity_GB = [int]([math]::round($($_.info.vmfs.Capacity / 1024/1024/1024),2)) $row.Free_spaceGB = [int]([math]::round($($_.info.Freespace / 1024/1024/1024),2)) $row.Used_spaceGB = [int]([math]::round($row.Capacity_GB - $row.Free_spaceGB,2)) $row.PercentFree = [int][math]::round(($row.Free_spaceGB / $row.Capacity_GB * 100),2) $row.PercentUsed = [int]100 - $row.PercentFree $row.VMs=[int]$($_.vm.count) $row.VMsHosted="..." $row.Hosts=[int]$($_.host.count) $row.HostsConnected="..." $row.DeviceID=[string]$($_.info.Vmfs.Extent[0].DiskName) $row.BlockSizeMB=[int]$($_.info.vmfs.BlockSizeMB) $row.Version=[string]$($_.info.vmfs.Version) $row.Type=[string]$($_.info.vmfs.Type) $Row.MaxBlocks=[int]$($_.info.vmfs.MaxBlocks) $Row.URL=[string]$($_.info.URL) $Row.vmfsupgradable=[bool]$($_.info.vmfs.vmfsupgradable) $Report.AddLast($row) | Out-Null } } } } $report | Sort-Object Free_spaceGB -Descending | Export-Csv -NoTypeInformation -Path $outputFile