vergessenes ESXi-Kennwort über vCenter wiederherstellen (PowerCLI)

5. August 2018 at 18:53

Wer kennt es nicht? Ein neuer ESXi-Server wird installiert oder der vSphere-Administrator verlässt das Unternehmen und das Kennwort der ESXi-Server ist nicht dokumentiert. Oder die Datei in der das Kennwort gespeichert wurde, geht verloren. Das ist ärgerlich, denn möchte man den ESXi-Server ohne vCenter verwalten oder in das Inventar eines neuen vCenters hinzufügen, so benötigt man dieses.

Der bislang einzige supportete Weg das Root-Kennwort eines ESXi-Servers zu resetten, ist die erneute Installation des Servers (vgl.: https://kb.vmware.com/s/article/1317898). Das ist erst recht sehr ärgerlich wenn man kein Backup der Konfiguration des Servers hat.

Es gibt die Möglichkeit auf die lokale ESXCLI eines ESXi-Servers über eine PowerCLI-Sitzung zuzugreifen, selbst wenn die PowerCLI-Sitzung auf ein vCenter verbunden ist. Vorraussetzung dafür ist das der entsprechende ESXi-Host auch im Inventar des vCenter-Servers vorhanden ist.

Der hier beschriebene Weg funktioniert erst ab vSphere 6, da erst dort die notwendigen Commands hinzugefügt wurden.

Bei Bedarf kann man noch eine Ausgabe einbauen, in der man z.B. sehen kann welcher Host gerade bearbeitet wird. Auch lässt sich natürlich exakt bestimmen welche Hosts bearbeitet werden sollen. Man muss dafür lediglich die Variable $vmhostentsprechend befüllen. Dies geht entweder z.B. mit Get-Cluster "Name" | Get-VMHost oder mit Get-VMhost "Name" oder auf jede andere beliebige Art die VMHost-Objekte zurückgibt.

Ich betreue eine vSphere-Umgebung die regelmäßig eine größere Anzahl an neuen ESXi-Hosts erhält. Da das Installationsteam ein anderes als das Betriebsteam ist, werden die Kennwörter bei der Übergabe entsprechend geändert. Dieses Script minimiert dabei den notwendigen Aufwand.