Mit Hilfe der Microsoft Powershell und VMware PowerCLI lassen sich selbst definierte Felder zum VMware Client hinzufügen. Mit Hilfe eines kurzen Skriptes lässt sich so eins Spalte hinzufügen, in der die Anzahl der vorhandenen Snapshots für die VM anzeigt.
| Microsoft Powershell |
|---|
| VMware PowerCLI |
Eine Installationsanleitung zur PowerCLI findet ihr hier.
Anschließend folgendes Skript in einem Editor kopieren und als .ps1 Datei abspeichern (z.B. addvmsnapcount.ps1).
ACHTUNG: Vorher den Eintrag $VCServerName ändern (entweder den Hostnamen oder die IP Adresse).
##############################
# Script created by Hugo Peeters #
# http://www.peetersonline.nl #
##############################
# Variables
$VCServerName = "MYVCSERVER"
$CustomFieldName = "Snapshots"
$ManagedObjectType = "VirtualMachine"
# Script
$VC = Connect-VIServer $VCServerName
$SI = Get-View ServiceInstance
$CFM = Get-View $SI.Content.CustomFieldsManager
$myCustomField = $CFM.Field | Where {$_.Name -eq $CustomFieldName}
If (!$myCustomField)
{
# Create Custom Field
$FieldCopy = $CFM.Field[0]
$CFM.AddCustomFieldDef($CustomFieldName,$ManagedObjectType,$FieldCopy.FieldDefPrivileges,$FieldCopy.FieldInstancePrivileges)
}
# Fill Custom Fields
$VMs = Get-VM
ForEach ($VM in $VMs)
{
$SnapshotCount = (Get-Snapshot -VM $VM | Measure-Object).Count
# Compare value to current value
$VMView = $VM | Get-View
If ($SnapShotCount -ne ($VMView.CustomValue | ?{$_.Key -eq $myCustomField.Key}).Value)
{
# Set Custom Value
$VMView.setCustomValue($CustomFieldName,$SnapShotCount)
}
}
Disconnect-VIServer -Confirm:$False
Dieses Powershell Skript stammt von peetersonline.nl - eine super Site für VMware Powershell Administration
Nachdem die Powershell gestartet wurde, erscheint folgendes Fenster
Das Skript mit vorangestellten ./ ausführen und anschließend Passwort eingeben.
Nachdem das Skript ausgeführt wurde, ist eine neue Spalte im VMware Cilent verfügbar. Eventuell muss diese zuerst noch aktiviert werden (einfach mit der rechten Maustaste auf eine der bestehenden Spalten und Snapshots einschalten - diese erscheint anschließend als letzte)