Der Versionsstatus der VMware Tools in Virtuellen Maschinen ist ein immer wiederkehrendes Thema. Mit Hilfe einger nützlicher Kommandos kann man diesen über die vSphereCLI (Version 5.5) auslesen.
Liste der VMware Tools aller VMs
Zunächst muss eine Connection zu vCenter hergestellt werden. Hat der ausführende User bereits Rechte auf vCenter, so erfolgt keine weitere Abfrage von Logindaten.
connect-viserver <vCenter name>
Alternativ können auch abweichende Credentials übergeben werden.
connect-viserver <vCenter name> -User myUser -password mypassword
Nachdem die Verbindung hergestellt wurde können die Kommandos abgesetzt werden.
get-vm | % { get-view $_.id } | select Name, @{ Name="ToolsVersion"; Expression={$_.config.tools.toolsVersion}},@{ Name="ToolStatus"; Expression={$_.Guest.ToolsVersionStatus}}
Die Ausgabe sieht dann so aus
Ausgabe als CSV
Möchte man das Ergebnis als Datei ausgeben, so kann man es in eine CSV Datei pipen.
| Export-Csv -NoTypeInformation -UseCulture -Path C:\Temp\ToolsInfo.csv
Der gesamte Befehl lautet dann:
get-vm | % { get-view $_.id } | select Name, @{ Name="ToolsVersion"; Expression={$_.config.tools.toolsVersion}},@{ Name="ToolStatus"; Expression={$_.Guest.ToolsVersionStatus}} | Export-Csv -NoTypeInformation -UseCulture -Path C:\Temp\ToolsInfo.csv
Nur Aktive VMs
Möchte man die Suche auf VMs im Status “PoweredON” beschränken, so muss eine “where” Klausel eingebaut werden.
| where {$_.powerstate -ne "PoweredOff" }
Der komplette Befehl:
get-vm | where {$_.powerstate -ne "PoweredOff" } | % { get-view $_.id } | select Name, @{ Name="ToolsVersion"; Expression={$_.config.tools.toolsVersion}},@{ Name="ToolStatus"; Expression={$_.Guest.ToolsVersionStatus}}
Nur veraltete Tools
Zur besseren Übersicht kann die Suche auf VMs einschränkt werden, deren Tools veraltet sind.
Get-VM | where {$_.powerstate -ne “PoweredOff” } | Get-VIew | where {$_.Guest.ToolsVersionStatus -ne “guestToolsCurrent”} | select Name, @{ Name=”ToolsVersion”; Expression={$_.config.tools.toolsVersion}}, @{ Name=”ToolStatus”; Expression={$_.Guest.ToolsVersionStatus}}