Hi Guys, I have a script for collecting the necessary information that i need about ESX hosts. The script was very fast, and runs in few minutes to get data from many vCenters. Now i wanted to...
See more...
Hi Guys, I have a script for collecting the necessary information that i need about ESX hosts. The script was very fast, and runs in few minutes to get data from many vCenters. Now i wanted to include Tag information of ESX host in my output. This tag is to indicate ownership of the host. I added 'Get-TagAssignment -Entity $_.Name' to my script and hoped it will do the job, But all of a sudden the script became extremely slow, and takes hours to pull just from one VC. We have a mix of 5.5 and 6.0 VCs and hosts. I know that in 5.5, tags have to be retrieved from inventory service., which might be slowing this down. Also i am not able to find a hostsystem property for Tag, that i can include with get-view. I guess this is again due to the fact that it is stored in inventory service and not in vcenter server. Can you please help me here, and find a faster way to get the info. Thanks in advance! $vcenter = vcenter1 connect-viserver $vcenter Get-View -ViewType HostSystem -Property Name,Parent,Runtime.ConnectionState,Config.Product,Hardware,VM -Server $vcenter | %{ $obj = [ordered]@{ vCenter = $vcenter Hostname = $_.Name Ownership = Get-TagAssignment -Entity $_.Name Cluster = &{ $parent = Get-View -Id $_.Parent -Property Name,Parent while($parent -isnot [VMware.Vim.ClusterComputeResource] -and $parent -isnot [VMware.Vim.Datacenter]){ $parent = Get-View -Id $parent.Parent -Property Name,Parent } if($parent -is [VMware.Vim.Datacenter]){ '' $script:sa = 'Yes' } else{ $parent.Name $script:sa = 'No' } } Stand_Alone = $script:sa State = $_.runtime.connectionState ESX_Version =$_.config.product.version Build =$_.config.product.build Model =$_.hardware.systemInfo.model CPU_Sockets =$_.hardware.CpuInfo.numCpuPackages CPU_Cores =$_.hardware.CpuInfo.numCpuCores RAM_GB = [math]::Round((($_.hardware.memorySize)/(1GB)),1) VM = $_.vm.Count } $HostReport += New-Object PSObject -Property $obj } Thanks, VJ