Microsoft Outlook 365 wirft plötzlich Fehler und stürzt ab (Windows Server 2016 RDS) [UPDATE: Offizieller Fix]

Update: Es gibt (fast) endlich (nach „nur“ 5 Tagen) einen offiziellen Fix (bald). Vorsichtige Formulierung, denn im ‚Current‘ Channel steht das Update noch auf „wird veröffentlicht“.
Informationen: https://learn.microsoft.com/de-de/officeupdates/current-channel#version-2412-january-16
Download: https://www.catalog.update.microsoft.com/Search.aspx?q=%20Microsoft%20365%20Current%20Channel

Problem

Microsoft Outlook, Excel und Word 365 aus den „Microsoft Apps for Enterrprise“ (früher Office Apps) stürzt seit Freitag in der Version Build 16.0.18324.20168 mit der „Programm reagiert nicht“ ab. Das passiert unter Windows Server 2016, beispielweise auf einem RDS (früher Terminalserver).

Die vorherige Version der „Microsoft Apps for Enterprise“ Office Version Build 16.0.18324.20168 funktioniert hingegen ohne Probleme.

Lösung

Lange Rede, kurzer Sinn: Ein aktuelles Microsoft Edge Update sorgt dafür, dass die Office-Apps unter Windows Server 2016 jetzt crashen. Schuld ist die neue Version der react-native-win32.dll.

Man ersetze einfach diese Datei hier:

C:\Program Files (x86)\Microsoft Office\root\Office16\react-native-win32.dll

ersetzen durch diese ältere Version:

Wir hoffen. Microsoft verklagt uns nicht, sondern repariert das defekte Update schnellstmöglich. Die Datei ist auch sicher echt, die Datei-Signatur ist intakt (SHA256: b15ea215d8cbb213c98a4d4ee45a2f42de07f5819a26394c40debae388882dae). Diese Lösung ist natürlich NICHT offiziell supported und wir warten auf ein repariertes Update von Microsoft.

⚠️ Wichtig: Die MP3-Endung der Datei ist aus Gründen da, aber das ist eine ganz normale ZIP-Datei. Einfach die MP3-Endung entfernen 😉

Update

Nach nur wenigen hundert Supportfällen, hat Microsoft das Problem anerkannt 👍

Die offizielle Meldung im Service-Portal: „Benutzerbeeinträchtigung: Microsoft 365-Anwendungen können auf Windows Server 2016 und 2019 Geräten unerwartet abstürzen.“


Während wir uns auf die Minderung konzentrieren, empfehlen wir betroffenen Kunden, ein Update zu erzwingen, um auf Version 2411 (Build 18227.20162) zurückzusetzen. Dies kann auch durch folgende Schritte erreicht werden:

  1. Öffnen Sie die Eingabeaufforderung „als Administrator“
  2. Führen Sie den folgenden Befehl aus:
    cd "C:\Program Files\Common Files\microsoft shared\ClickToRun"
  3. Führen Sie den folgenden Befehl aus:
    OfficeC2RClient.exe /changesetting Channel=Broad
  4. Führen Sie den folgenden Befehl aus:
    OfficeC2RClient.exe /update user

Ursache: Ein kürzliches Office-Update, das das React Native-Framework integriert, um bestimmte Funktionen in Microsoft 365-Anwendungen zu unterstützen, hat ein Problem eingeführt, das zu dieser Beeinträchtigung führt.


Kennwortänderung für alle Benutzer in Microsoft 365 erzwingen

Free digital security background“/ CC0 1.0

Das Erzwingen einer „selbstständigen“ Kennwortänderung kommt schon mal vor – vor allem, wenn ein Admin mit viel Wissen ein Unternehmen verlässt. Das ist in Microsoft 365 im GUI leider nicht möglich, aber natürlich an der PowerShell.

So zwingt man einen (oder mehrere) Benutzer, das eigene Kennwort bei der nächsten Anmeldung zu ändern – ohne das Kennwort zu kennen.

Lösung

Nach dem Obligatorischen Connect-MsolService:

Set-MsolUserPassword -UserPrincipalName [email protected] -ForceChangePasswordOnly $true -ForceChangePassword $true

Das lässt sich nun weiterverarbeiten.

Zum Beispiel, um alle Microsoft 365 Benutzer „auf einmal“ zu zwingen, ihr Kennwort zu ändern:

Get-MsolUser -All | Set-MsolUserPassword -ForceChangePasswordOnly $true -ForceChangePassword $true

So filtert man (zum Beispiel) eine Gruppe von Benutzern und erzwingt die Änderung:

Get-MsolUser -All | ? { $_.Country -eq "Hessen"} | Set-MsolUserPassword -ForceChangePasswordOnly $true -ForceChangePassword $true

Wichtig: Man muss sowohl den Parameter ForceChangePassword als auch ForceChangePasswordOnly setzen. Wenn man ForceChangePasswordOnly überspringt, wird nur ein neues Kennwort für den Benutzer (automatisch) generiert und man muss selbiges manuell verteilen (Stichwort „Initialkennwort“).

Windows Hello (PIN/Biometrie) für Benutzer vollständig zurücksetzen

Manchmal geht Windows Hello kaputt. Windows Hello verwaltet die Computerlokale Komfort-Anmeldung mit „einfachen“ PINs, Fingerabdrücken, der Gesichtserkennung und so weiter. Grundsätzlich eine nette Erfindung, welche Anmeldung an Windows etwas komfortabler macht.

Es gibt Momente, in denen das kaputtgeht. Zum Beispiel wenn sich in der Domäne (AD/AAD) die PIN-Richtlinien ändern oder sich zwei Profile widersprechen.

Die Fehlermeldungen sind leider wenig zielführend. Wir haben die Meldung „Diese Option ist derzeit nicht verfügbar“ nach der PIN-Eingabe gesehen, die Fehlernummer 0x801c0451 beim Versuch die PIN zurückzusetzen und verschiedene Fehler nach einer Biometrischen Anmeldung.

Lösung

Die einfachste Möglichkeit ist, Windows Hello radikal zurückzusetzen und sauber neu zu konfigurieren. Das geht am einfachsten, indem man den Zertifikatsspeicher von Hello vollständig zu entfernt:

Certutil -DeleteHelloContainer 

Das muss im Kontext des betroffenen Benutzers passieren. Bei einer defekten Windows-Anmeldung tut es auch ein angemeldeter Administrator, der die Shell „Als Benutzer“ ausführt. Nach dem Reboot kann man Hello dann neu einrichten, als hätte es das vorher nicht gegeben.

Excel/Word „Die Datei kann nicht geöffnet werden, da der Dateipfad größer als 259 Zeichen. Kürzen Sie den Pfad oder den Dateinamen“

Es kommt vor, dass Benutzer beim Öffnen von Dateien aus tief verschachtelten Ordnern (oder sehr langen Pfadnamen) diese Fehlermeldung von Office-Apps wie Excel, Word oder PowerPoint erhalten:

Die Datei kann nicht geöffnet werden, da der Dateipfad größer als 259 Zeichen. Kürzen Sie den Pfad oder den Dateinamen

Abgesehen von dem grammatikalischen Fehler, dass im ersten Satz das abschließende Verb fehlt (vermutlich „ist“), stimmt diese Meldung.

Lösung

Es gibt keine Lösung, aber einen Workaround.

Microsoft Office-Apps, allen voran Excel, unterstützen keine Pfade mit mehr als 259 Zeichen. Das hat mit der heiligen Abwärtskompatibilität zu tun, denn es könnte ja sein das noch ein Unternehmen auf VB-Macros aus den 90ern baut. Und mit „ein“ sind hier „100% der Fortune 500“ gemeint 😉

  • Windows local and UNC files: 260 characters
  • OneDrive / SharePoint files synced to the local drive: 260 characters
  • Online OneDrive / Online SharePoint files (opened directly in the WebApp) 400 characters

Der Workaround ist einfach: Die Excel-Web-App nutzen und die Datei direkt auf dem Sharepoint (Online) bearbeiten,

Microsoft 365 Exchange online Mailbox neu mit einem lokalen Benutzer verbinden

Es kommt in Hybrid-Szenarien schon mal vor, dass ein Admin einen synchronisierten AD-Benutzer nachträglich innerhalb von Microsoft 365 mit einem Postfach versieht. Das ist nicht „supported“, das Postfach taucht nicht im Exchange ECP auf und es drohen fiese Konflikte, wenn Attribute synchronisiert werden. Außerdem kann es auf einmal doppelte Mailadressen geben, weil beide Exchange-Server auf unterschiedliche Adresslisten zugreifen.

Da sollen/müssen die Benutzer wieder auftauchen.

Lösung

Eine „offizielle“ Lösung gibt es nicht so richtig. Exchange Online verwaltet Postfächer etwas anders als der „on Premises“ Exchange, man kann daher Postfächer eigentlich nicht auf die Schnelle ab- und wieder anhängen. Vor allem nicht mit verbundenen Benutzern (Outlook oder Applegeräte).

Es gibt aber einen (bisher) ganz brauchbar funktionierenden Trick.

  • Wenn eine Mailbox in EXO angelegt wurde
  • UND diese On-Premises im ECP [noch] nicht existiert (Postfachtyp „Office 365“)
  • DANN kann man die Mailbox „noch einmal“ On-Premises als Remote-Mailbox enablen. ACHTUNG: Dabei werden die im Exchange Online erstellten Attribute (SMTP-Adressen, Kontaktinformationen, Berechtigungen …) bei der nächsten Synchronisation überschrieben.

Schritt für Schritt geht das so

  1. Exchange GUID der Mailbox aus Exchange Online holen:
    Get-Mailbox <NAME> | fl ExchangeGuid
  2. Primäre E-Mail-Adresse der Mailbox auslesen (wenn nötig):
    Get-Recipient <NAME>| fl PrimarySmtpAddres
  3. Alle weiteren E-Mail-Adressen der Mailbox auslesen (wenn nötig):
    Get-Recipient <NAME> -ResultSize Unlimited | fl @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ", "}}
  4. Mailbox On-Premises „neu“ in Exchange Online enabeln
    Connect-ExchangeOnline
    Enable-RemoteMailbox <NAME> -RemoteRoutingAddress @domain.mail.onmicrosoft.com

    Set-RemoteMailbox <NAME> -ExchangeGuid <GUID AUS SCHRITT1>
  5. Im ECP (On-Premises) die E-Mail Adressen aus Schritt 2 und 3 der Mailbox wieder hinzufügen und einen „Entra ID Connect“ Sync („initial“) starten.

Wenn das erledigt ist, kann es eine Weile dauern, bis das Online-Adressbuch das Postfach wieder korrekt anzeigt. In meinem letzten Fall hier etwas weniger als 24 Stunden.