Kedže nie všetky esx hosty musia byť nutne vo vCenter (z rôznych prevádzkových dôvodov), po určitom čase už nemusite mať aktuálne info o VMs ktoré na nich bežia. Preto môže pomocť script aj pre zoznam VMs na týchto hostoch.
add-pssnapin VMware.VimAutomation.Core
$ESXiHosts = Import-Csv "C:\Scripts\Import\ServersLinuxESXi.txt"
$username = "root"
$password = Get-Content "C:\Scripts\MartinESXiRootPassword.txt" | ConvertTo-SecureString
$cred = new-object -typename System.Management.Automation.PSCredential `
-argumentlist $username, $password
connect-VIserver -server $ESXiHosts[0].IP,$ESXiHosts[1].IP,$ESXiHosts[2].IP,$ESXiHosts[3].IP -Credential $cred
$report = @()
$filename1="C:\Scripts\Exports\ListLinuxEsxiVMs{0:yyyyMMdd}.csv" -f (Get-Date)
$VMs = Get-VM -Server $ESXiHosts.IP
$VMs | %{
$ResolveDNS = Resolve-DnsName -Server 10.10.10.100 -Name $_.VMhost -ErrorAction SilentlyContinue | Select-Object -ExpandProperty NameHost -First 1
$row = "" | Select "VM Name", "HW Version", State, IP, Memory, OS, "Resource Pool", Notes, NumCpu, Folder, Host, HostDNS
$Ver = $_|get-view
$vmGuest = $_ | Get-VMGuest
$row."VM Name" = $_.Name
$row."HW Version"= $Ver.Config.Version
$row.State = $_.PowerState
$row.IP=$vmGuest.IPAddress[0]
$row.Memory=$_.MemoryMB
$row.OS=$vmGuest.OSFullName
$row."Resource Pool"=$_.ResourcePool
$row.Notes=$_.Notes
$row.NumCpu=$_.NumCpu
$row.Folder=$_.Folder
$row.Host=$_.VMHost
$row.HostDNS=$ResolveDNS
$report += $row
}
$report | Export-CSV $filename1 -NoTypeInformation












