VMware vCenter Server Appliance Upgrade 5.5 auf 6.0 schlägt fehl: File /usr/lib/vmidentity-firstboot.py (2119876)

Problem

Der Upgrade Assistent in Form des netten HTML-Setups is ausgefüllt, alle Eingaben sind validiert und das Setup legt los. Nach (gefühlten) 10 Minuten steht die Migration still und es erscheint diese unfreundliche Fehlermeldung:

Firstboot script execution error: 
Encountered an internal error. Traceback (most recent call last): File "/usr/lib/vmidentity-firstboot.py", line 202, in main vmidentityFB.boot()
File "/opt/vmware/lib64/vmidentity_firstboot_core.py", line 180, in boot self.dolmport()
File "/opt/vmware/lib64/vmidentity_firstboot_core.py", line 1369, in dolmport self.doLSImport()
File "/opt/vmware/lib64/vmidentity_firstboot_core.py", line 1411, in dolSImport returncode = self.runShellCommand(command, True)
File "/opt/vmware/lib64/vmidentity_firstboot_core.py", line 1515, in runShellCommand args = shlex.split(command)
File "/opt/vmware/lib/python2.7/shlex.py", line 279, in split return list(lex)
File "/opt/vmware/lib/python2.7/shlex.py", line 269, in next token = self.get_token()
File "/opt/vmware/lib/python2.7/shlex.py", line 96, in get_token raw = self.read_token()
File "/opt/vmware/lib/python2.7/shlex.py", line 172, in read_token raise ValueError, "No closing quotation" ValueError: No closing quotation 

This is an unrecoverable error, please retry install.
If you run into this error again, please collect a support bundle and open a support request.

Lösung

Das Kennwort für root und den SSO-Adminbenutzer dürfen keine Sonderzeichen enthalten (/\+()“ Leereichen und so weiter). Einfach eine neues Kennwort nur aus Buchstaben und Zahlen vergeben, schon läuft der Assistent *kopfschüttel*

Das gilt für den root und [email protected], wenn SSO nicht eingerichtet ist.

Update: vmware hat dieses Verhalten zwar nicht gefixt, aber Dokumentiert: https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2119876

Active Directory Zertifikatsdienste Webregistrierung Fehler 0x80070057 (WIN32: 87)

Problem

Wenn man versucht die Zertifizierungsstellen-Webregistrierung nach der Installation oder Migration (oder Wiederherstellung einer CA) zu installieren („Konfiguration abschliessen“), tritt dieser Fehler auf:

Certification Authority Web Enrollment: Konfiguration fehlgeschlagen
Active Directory Certificate Services-Setup ist fehlgeschlagen mit dem folgenden Fehler: Der Parameter ist falsch. 0x80070057 (WIN32: 87)

0x80070057-windows-ca-zertifizierungsstelleLösung

Mir sind bisher zwei Ursachen untergekommen, wahrscheinlicher ist die zweite.

Möglichkeit 1

Die Node zu den Public-Key Services im Active Directory existiert (noch) nicht oder der ausführende Benutzer hat keine Berechtigungen darin.

  1. ADSIEdit öffnen, Zum Konfigurationskontext verbinden
  2. Zu dieser Node navigieren: CN=Public Key Services, CN=Services, CN=Configuration, DC=DOMAIN,DC=TLD
  3. Wenn diese noch nicht existiert, anlegen.
  4. Wenn diese existiert, die Rechte auf den Schlüssel prüfen. Die Organisations-Admins sollten hier Vollzugriff haben (und der Account der das Setup abschliesst sollte dort Mitglied sein)

0x80070057-windows-ca-zertifizierungsstelle-ldap
Möglichkeit 2 (*wahrscheinlich*)

Das wahrscheinlichere Problem ist, dass der Wert des Schlüssels Setupstatus unter HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration falsche Daten enthält. Vermutlich steht hier der (HEX) Wert 6003 drin. Der Wert 6003 zeigt an, dass CA Webregistrierung bereits installiert ist. Der korrekte Wert für die Aktivierung lautet 6001 (not installed).

  1. In HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration den Wert Setupstatus von 6003 in 6001 ändern:
    certutil -setreg config \ Setupstatus 0x6001
  2. Den Abschluss von Setup erneut versuchen

Outlook 2016 gegen Exchange 2016 fragt immer wieder nach Kennwort („MAPI Virtual Directory Bug in Exchange 2016 CU2“)

Problem

Outlook 2016 verbindet sich nicht zu Exchange 2016. OWA geht. Die wichtigen URLs sind alle richtig konfiguriert:

Get-ClientAccessServer | fl autodiscover*
Get-ActiveSyncVirtualDirectory | fl *url*
Get-OutlookAnywhere | fl *hostname
Get-WebServicesVirtualDirectory | fl *url*
Get-OwaVirtualDirectory | fl *url*
Get-OabVirtualDirectory | fl *url*

Outlook 2013 funktioniert einwandfrei. Bei Outlook 2016 schlägt allerdings schon das hinzufügen eines Profils in der Systemsteuerung fehl – Man wird immer wieder nach Name und Kennwort gefragt.

Lösung

No+MAPI+AuthenticationExchange 2016 CU2 bringt einen (bisher ungefixten) ziemlich fiesen und schwer zu jagenden Bug mit. Wenn man im GUI (ECP) das virtuelle Verzeichnis „mapi“ (für die RPC/HTTP von Outlook 2016) bearbeitet, wird beim Speichern immer die IIS-Authentifizierung zurückgesetzt. Immer. Auf nichts. Leer. Egal ob man auf der Seite etwas macht oder nicht, egal was man macht.

Fix für alle mapi-Verzeichnisse

Get-MapiVirtualDirectory | Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm,Negotiate,OAuth

Vielen Dank Microsoft für erfüllte neun (!) Stunden Fehlersuche mit viel Haare raufen. Vor allem vielen Dank für die absolute Abstinenz jeglicher Outlook-Discovery debugging-Werkzeuge (nein, dieser Server war nicht extern erreichbar).

Exchange 2013/2016 alle PST-Dateien aus einem Verzeichnis auf einmal importieren (bulk)

Nach einer „kalten“ Migration, nach einem Desaster oder einer anderen PST-Export-Orgie liegen in einem Ordner oft viele wichtige PST-Dateien, deren Inhalt wieder den Weg in die Mailboxen der passenden Benutzer finden soll.

Die Waffe der Wahl dazu heisst „New-MailboxImportRequest„. Wenn das CMDlet noch nicht eingeschaltet ist ( … nicht gefunden …) oder für diesen Benutzer aus magischen RBAC-Gründen nicht zur Verfügung steht, hilft ein:

New-ManagementRoleAssignment -Name "Import Export PST" -SecurityGroup "Organization Management" -Role "Mailbox Import Export"

In der Active Directory-Gruppe „Organization Management“ ist der erste Domänen-Administrator (und der schlaue Zweit-Admin) selbstverständlich Mitglied. Wenn nicht, ändern und neu anmelden. Gruppenmitgliedschaften werden nur beim anmelden übergeben!

Alle PST-Dateien aus einem Verzeichnis in die selben Ordner importieren:

dir \\SERVER\FREIGABE\*.pst | %{ New-MailboxImportRequest -Mailbox $_.BaseName -FilePath $_.FullName -TargetRootFolder /}