hello
is there any possible to add single line to my script for VMtools build number? I am looking for Vmtools build number
LucD or any expert Please help
$allLines = @() # Line added
Get-VM |
ForEach-Object {
$VM = $_
$VMview = $VM | Get-View
$VMResourceConfiguration = $VM | Get-VMResourceConfiguration
$VMHardDisks = $VM | Get-HardDisk
$HardDisksSizesGB = @()
$Temp = $VMHardDisks | ForEach-Object { $HardDisksSizesGB += [Math]::Round($_.CapacityKB/1MB) }
$VmdkSizeGB = ""
$Temp = $HardDisksSizesGB | ForEach-Object { $VmdkSizeGB += "$_+" }
$VmdkSizeGB = $VmdkSizeGB.TrimEnd("+")
$TotalHardDisksSizeGB = 0
$Temp = $HardDisksSizesGB | ForEach-Object { $TotalHardDisksSizeGB += $_ }
$VMDKnames = @()
$Temp = $VMHardDisks | ForEach-Object { $VMDKnames += $_.Filename.Split("/")[1] }
$Snapshots = $VM | Get-Snapshot
$Report = "" | Select-Object VMname,GuestState,ToolsStatus,UsedSpaceGB,ProvisionedSpaceGB,Version,DNSname,ESXname,ClusterName,MemoryGB,vCPUcount,vNICcount,vNICType,
IPaddresses,VMXname,VMDKname,VmdkSizeGB,TotalVmdkSizeGB,DatastoreName,ToolsVersion,ToolsUpdate,NumCpuShares,
CpuLimitMHZ,CpuReservationMHZ,NumMemShares,ReservationsMB,LimitMB,SnapshotCount,GuestOS,VLANid,Portgroup,
RDMPath,GuestDisks,GuestDiskspaceGB,GuestDiskspaceUsedGB,GuestDiskspaceUsed,Folder
$Report.VMName = $VM.name
$Report.GuestState = $VM.guest.State
$Report.ToolsStatus = $VM.guest.extensiondata.toolsstatus
$Report.UsedSpaceGB = $VM.UsedSpaceGB
$Report.ProvisionedSpaceGB = $vm.ProvisionedSpaceGB
$Report.Version = $vm.ExtensionData.config.version
$Report.DNSNAME = $vm.Guest.ExtensionData.Hostname
$Report.ESXname = $VM.Host
$Report.ClusterName = ($VM | Get-Cluster).Name
$Report.MemoryGB = $VM.MemoryMB/1KB
$Report.vCPUcount = $VM.NumCpu
$Report.vNICcount = $VM.Guest.Nics.Count
$report.vNicType = [string]::Join(',',($vm.NetworkAdapters | %{$_.Type}))
$Report.IPaddresses = [string]::Join(',',$VM.Guest.IPAddress)
$Report.VMXname = $vm.Extensiondata.Config.Files.VmPathName.Split("/")[1]
$Report.VMDKname = [string]::Join(',',$VMDKnames)
$Report.VmdkSizeGB = $VmdkSizeGB
$Report.TotalVmdkSizeGB = $TotalHardDisksSizeGB
$Report.DatastoreName = [string]::Join(',',($vm.Extensiondata.Config.DatastoreUrl | %{$_.Name}))
$Report.ToolsVersion = $vm.guest.ExtensionData.ToolsVersion
$Report.ToolsUpdate = $vm.Extensiondata.Guest.ToolsStatus
$Report.NumCpuShares = $VMResourceConfiguration.NumCPUShares
$Report.CpuLimitMHZ = &{if($VMResourceConfiguration.CpuLimitMhz -eq -1){"No Limit"}else{$VMResourceConfiguration.CpuLimitMhz}}
$Report.CpuReservationMHZ = $VMResourceConfiguration.CpuReservationMhz
$Report.NumMemShares = $VMResourceConfiguration.NumMemShares
$Report.ReservationsMB = $VMResourceConfiguration.MemReservationMB
$Report.LimitMB = &{if($VMResourceConfiguration.MemLimitMB -eq -1){"No Limit"}else{$VMResourceConfiguration.MemLimitMB}}
$Report.SnapshotCount = (@($VM | Get-Snapshot)).Count
$Report.GuestOS = $VM.Guest.OSFullName
$Report.VLANid = [string]::Join(',',(Get-VirtualPortgroup -VM $vm | %{$_.VlanId}))
$Report.Portgroup = [string]::Join(',',(Get-VirtualPortgroup -VM $vm | %{$_.Name}))
$RDMPaths = $vm | Get-HardDisk | where {$_.DiskType -like "Raw*"}
$Report.RDMPath = &{if($RDMPaths){[string]::Join(',',($RDMPaths | %{$_.ScsiCanonicalName}))}else{"No RDM"} }
$Report.GuestDisks = [string]::Join(',',($VM.Guest.Disks | %{$_.Path}))
$Report.GuestDiskspaceGB = [string]::Join(',',($VM.Guest.Disks | %{"{0:f0}" -f ($_.Capacity/1GB)}))
$Report.GuestDiskspaceUsedGB = [string]::Join(',',($VM.Guest.Disks | %{"{0:f0}" -f (($_.Capacity - $_.FreeSpace)/1GB)}))
$Report.GuestDiskspaceUsed = [string]::Join(',',($VM.Guest.Disks | %{"{0:p0}" -f (($_.Capacity - $_.FreeSpace)/$_.Capacity)}))
$report.Folder = $VM | Select BlueFolderPath
$allLines += $Report # Line changed
}
$allLines | Export-Csv "GDCVMreport.csv" -NoTypeInformation -UseCulture
You can find the VMware Tools build number at: $vm.ExtensionData.Config.Tools.ToolsVersion
So, you have to add VMToolsBuildNumber to the line starting with the following: $Report = " " | Select-Object VMname
You also have to add the following line to your script: $Report.VMToolsBuildNumber = $vm.ExtensionData.Config.Tools.ToolsVersion