Thank you LucD for your help.
Since we have mix of Windows and Linux and not sure if our VM has AD cmdlet installed or not and Invoke-VMscript was working for Windows but showing blank for Linux. I tried as below using the DNS name.
Let me know, if this needs any tweaks from your end.
$yesterday = (Get-Date).AddDays(-1)
Get-VM -Name MyDB1 |
Where-Object {$_.PowerState -eq 'PoweredOn' -and $_.ExtensionData.Config.CreateDate -ge $yesterday} |
Sort-Object -Property CreatedTime -Descending |
Select-Object @{N = 'vCenter'; E = { ([System.Uri]$_.ExtensionData.Client.ServiceUrl).Host } },
Folder,
@{N = "DNS_Name";E={((($_.Guest.HostName) -split '\.')[0])}},
@{N = "VM Name";E={$_.Name}},
@{N = "IPAddr";E={@($_.guest.IPAddress[0])}}, NumCPU, MemoryGB,
@{N = "Used_HDD(GB)"; E = { [math]::round($_.UsedSpaceGB) } },
@{N = "OS"; E = { $_.Guest.OSFullName } },
@{N = "CreateDate"; E = { $_.extensiondata.config.createDate } },
@{N = 'DistinguishedName';E={@((Get-ADComputer -Identity ((($_.Guest.HostName) -split '\.')[0])).DistinguishedName -replace '^[^,]+,', '')}}