VMware Lizenzen auslesen und zugehörigen Host finden

Je größer die vSphere Umgebung ist, desto schwerer wird es, einen Überblick über die Lizenzen zu behalten.

Die Weboberfläche des Web Clients zeigt nur die vorhandenen Lizenzen an, nicht aber, wo sie verwendet werden. Dazu müsste man entweder jeden einzelnen ESX durchgehen oder beim Einpflegen der Lizenzen die jeweilige Beschreibung anpassen.

Einfacher ist da der Weg über die VMware PowerCLI.

Der Code

import-module VMware.VimAutomation.Cis.Core
Connect-VIServer -server vcenter.braun.local -Protocol https
$hosts = get-vmhost -name *
$vSphereLicenseInfo = @()
$ServiceInstance = Get-View ServiceInstance
$LicenseManager = Get-View ($ServiceInstance | Select -First 1).Content.LicenseManager
Foreach ($License in ($LicenseManager | Select -ExpandProperty Licenses)) {
	$Details = "" |Select Name, Key, Total, Used, Free, ExpirationDate , Information, Hosts
	$Details.Name= $License.Name
	$Details.Key= $License.LicenseKey
	$Details.Total= $License.Total
	$Details.Used= $License.Used
	$Details.Free = $Details.Total - $Details.Used
	$Details.Information= $License.Labels | Select -expand Value
	$Details.ExpirationDate = $License.Properties | Where { $_.key -eq "expirationDate" } | Select -ExpandProperty Value
	foreach($esx in $hosts){
		if($esx.LicenseKey -eq $License.LicenseKey){
			$Details.Hosts += $esx.Name + " "
		}
	}
	$vSphereLicenseInfo += $Details
}
$vSphereLicenseInfo | Format-Table -AutoSize

Das Ergebnis sieht dann wiefolgt aus:

Erklärungen

Zeile 1: Import der benötigten Module (falls man die Powershell händisch startet und nicht die PowerCLI an sich startet)

Zeile 2: Verbindung zum vCenter aufbauen

Zeile 3: Alle Hosts auslesen, um diese nachher iterativ gegen die Lizenzen laufen zu lassen

Zeile 4-15: Service Instanz Objekt anlegen, um an den Lizenzmanager zu kommen, dann via Schleife über die Lizenzen laufen und die notwendigen Infos auslesen und im Array ablegen.

Zeile 16-20: Zu jeder Lizenz wird anschließend ein Abgleich über alle Hosts gemacht,  um die Hosts zu finden, die die Lizenz verwenden.

 

Wer die Ergebnisse gerne in Excel importieren möchte, kann das bequem mit folgendem Befehl. Die CSV Datei muss dann wie gewohnt importiert werden.

$vSphereLicenseInfo | Export-Csv .licenses.csv
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s