Bei einem frisch installierten Windows Server 2016 bekam ich letzte Woche die Fehlermeldung „Assembly konnte nicht gefunden werden (0x80073701)“ als ich versuchte die Rolle „Fileserver Resource Monitor“, bzw. „Ressourcen-Monitor für Dateiserver“ zu installieren. Windows Update spuckte die gleiche Fehlernummer aus: 0x80073701 – STATUS-SXS-ASSEMBLY-MISSING.



Das referenzierte Assembly konnte nicht gefunden werden

Die Fehlermeldung erhielt ich bei jedem Versuch eine Rolle unter Windows Server 2016 zu installieren. Egal ob über die PowerShell oder die Oberfläche des Server Managers. Ich habe auch versucht, testweise die DNS-Rolle zu installieren (siehe DNS Server einrichten), bekam aber die gleiche Meldung. Es lag also auch nicht an der ausgewählten Rolle.

0x80073701 Assembly konnte nicht gefunden werden

Unschöne Fehlermeldung beim Installieren von Rollen und Features – 0x80073701 – Assembly konnte nicht gefunden werden

Die referenzierte Assembly konnte nicht gefunden werden 0x80073701

Auf meiner langen Suche nach der Ursache, bzw. einer Lösung habe ich folgende Lösungsansätze durchgeführt:

1) Systemdatei-Überprüfungsprogramm

Die Überprüfung der Systemdateien geschieht über die Eingabeaufforderung. Diese muss mit administrativen Rechten („als Administrator starten“) ausgeführt werden. Durch Absetzen des Befehls „sfc /scannow“ beginnt die Anwendung sämtliche Systemdateien auf Fehler zu überprüfen. Sollten Fehler erkannt werden, versucht die Systemdatei-Überprüfung diese sofort zu reparieren. Bei vorliegenden Fehlern empfiehlt es sich, die Überprüfung solange erneut zu starten, bis keine Fehler mehr entdeckt werden.

2) Reparieren des Windows Images

Im Ordner C:\Windows\WinSxs werden alle Komponenten gespeichert, die zum Anpassen und Aktualisieren der Windows-Installation benötigt werden. Auch für die Installation von Rollen und Features und Windows Update werden Dateien aus diesem Ordner benötigt. Dieses lokale Windows Image kann mit Windows Boardmitteln auf Fehler überprüft und, sofern erforderlich, repariert werden. Die Befehle hierfür lauten:

  • dism /online /cleanup-image /scanhealth
    Überprüft das Windows Image auf Beschädigungen
  • dism /online /cleanup-image /checkhealth
    Überprüft, ob das Windows-Image repariert werden muss oder ob es fehlerfrei ist

Sollte das Windows Image beschädigt sein, so lässt sich dieses über den Befehl „Dism /Online /Cleanup-Image /RestoreHealth“ reparieren. Mit dem Parameter /Source lässt sich zudem noch eine Quelle für die Reparatur angeben. Weitere Informationen zu dem Thema Reparieren von Windows Images findest Du hier: https://msdn.microsoft.com/de-de/library/hh824869.aspx.

3) Überprüfung der Datei CBS.log

In der Datei CBS.log werden sämtliche Schritte bei der Installation von Rollen und Features protokolliert. Sie liegt im Ordner C:\Windows\Logs\CBS und liefert genauere Informationen zu möglichen Fehlerquellen. In meinem Fall konnte ich über diese Datei den Fehler lokalisieren. Dort fanden sich nämlich Verweise auf Komponenten mit italienischem Sprachpaket. Da dieses Sprachpaket auf diesem Server nicht installiert war, ging ich der Sache auf den Grund und fand schließlich einen Registryschlüssel welcher auf zahlreiche italienische Sprachpakete verwies.

0x80073701 ERROR SXS ASSEMBLY MISSING

In der CBS.log wurden versuchte Zugriffe auf nicht vorhandene Sprachpakete protokolliert.

Im Registry Schlüssel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackageDetect] liegen hunderte Unterschlüssel in denen letztlich die Verweise auf die tatsächlich vorhandenen Installations- und Sprachpakete gespeichert sind. Diese wiederum liegen im Ordner C:\Windows\servicing.

0x80073701 Assembly konnte nicht gefunden werden

Im Registryschlüssel „PackageDetect“ finden sich an einigen Stellen Verweise auf Dateien aus dem italienischen Sprachpaket

In meinem Fall betraf es das Paket „Microsoft-Windows-FSRM-Core-Package~31bf3856ad364e35~amd64…“. Ein Blick in den Speicherort (C:\Windows\servicing) verrät, es gibt dort kein italienisches Sprachpaket. Im entsprechenden Registry-Key gab es aber einen Verweis auf jenes nicht vorhandene Sprachpaket. Stichproben in weiteren Registry-Keys ergaben, dass es unzählige solcher Verweise gab. Wie diese dorthin kamen konnte ich nicht nachvollziehen, jedoch waren sie der Grund für das Scheitern der Installation der Rollen und Features.

0x80073701 ERROR SXS ASSEMBLY MISSING

Im betreffenden Ordner fehlen die Sprachpakete, welche in der Registry eingetragen sind

Die Lösung: Manuelles Entfernen hunderter Registrywerte. Natürlich sollte zuvor eine Sicherung des Systems oder zumindest des Registryschlüssels angefertigt werden. Sollte das System als virtuelle Maschine installiert sein, empfiehlt sich ein Snapshot, um im Falle eines Ausfalles schnell wieder auf den alten Stand zurückkehren zu können.

Damit die Werte gelöscht werden können, reicht es aus, dem Administrator vorübergehend Vollzugriff auf den Schlüssel „PackageDetect“ zu geben. Nach dem Löschen der Werte, sollte dies wieder rückgängig gemacht werden.

Referenzierte Assembly konnte nicht gefunden werden 0x80073701

Der angemeldete Administrator benötigt vorübergehend Vollzugriff auf den Registry Schlüssel „PackageDetect“ um Änderungen durchzuführen

Nachdem ich mühsam alle Verweise auf italienische Sprachpakete entfernt hatte, ließ sich die Rolle sofort installieren. Ein Neustart war nicht nötig.

Update: Die Installation von Windows Updates funktionierte in meinem Fall erst nach der manuellen Deinstallation des Sicherheitsupdates KB3213986 und einem anschließenden Neustart des Servers. Hinweise, dass dieses Update auch der Auslöser des obigen Fehlers ist, konnte ich bislang aber nicht entdecken.

Wenn Dir diese Information weitergeholfen hat, kannst Du mir das gerne in die Kommentare schreiben. Ebenfalls freue ich mich über jede kleine Spende, die Du diesem Blog ganz unkompliziert über PayPalMe zukommen lassen kannst. Vielen Dank.

René Albarus

René Albarus

Ich heiße René Albarus und bin seit 2002 beruflich im Bereich der Systemadministration tätig. Da auch ich einen Teil meines Wissens IT-Blogs im Internet verdanke, ist es für mich selbstverständlich, dass ich Lösungsansätze und Anleitungen in diesem Blog weitergebe.
René Albarus
13 Kommentare
  1. Ruben sagte:

    Vielen Dank für diesen Tollen Beitrag,
    Ich konnte leider das .NET Fremwork 3.5 Feature nich installieren, mit der gleichen Fehlermeldung:
    Assembly konnte nicht gefunden werden – 0x80073701
    Bei mir wars kein italienischers, sondern ein Taiwanese Mandarin Language Pack (zh-TW) welches den Fehler verursachte.

    Nachdem ich jetzt 2 Stunden nichts anderes als mich mittels Strg+f, del & enter durch die Registry gekämpft habe konnte ich .NET 3.5 erfolgreich installieren.

    Antworten
  2. Andreas sagte:

    Auch ich bedanke mich vielmals. Ebenfalls gebeutelter Strg+f, del & enter user aufgrund eines spanischen Verweises welches die Installation vom DHCP verhinderte.
    Toll geschrieben und echt hilfreich.

    Antworten
  3. Rene Streubel sagte:

    Hallo, bei unserem Server 2016 werden keine kumulativen Updates installiert. Abbruch mit dem Fehler 0x80073701.
    Wie kamen Sie darauf , das Update KB3213986 zu deinstallieren, damit es dieses Problem löst? Der Serve wurde im Januar eingerichtet und das genannte Update ist auch drauf. Bevor ich das deinstalliere wollte ich gern noch weitere Quellen dazu erlesen.

    Danke

    Antworten
    • René Albarus sagte:

      Hallo René,

      zu dem Zeitpunkt waren bei meiner Installation erst 3 Updates installiert. Eines davon war das KB3213986. Ob dies wirklich etwas damit zu tun hatte, kann ich bis heute nicht sagen.

      Interessanterweiser ist der Fehler bei Neuinstallationen seit April/Mai 2017 nicht wieder augetreten.

      Antworten
      • René Streubel sagte:

        Hallo René,

        ich kann nun bestätigen, dass die Deinstallation des Sicherheitsupdates KB3213986 das Problem behebt.
        Nach Deinstallation dieses Updates erfolgen nun die kummulativen Updates des Servers ohne Fehlermeldung.
        Vielen Dank!

        Antworten
  4. Joachim Otahal sagte:

    Danke, die Registry putzen hat geholfen. Mit Hilfe von einem passenden registry editor geht das als Massenaktion erträglich, Neuaufsetzen eines Server 2016 Clusternodes mit Datacore-SAN + hyper-V wäre keine gute Alternative gewesen.

    Antworten
    • René Albarus sagte:

      Hallo Joachim. Stimmt, das wäre wirklich eine sehr aufwendige Neuinstallation geworden. Freut mich umso mehr, dass Dir der Tipp weitergeholfen hat.
      Viele Grüße

      Antworten
    • René Albarus sagte:

      Vielen Dank, schön dass ich helfen konnte. Das Bereinigen der Registry ist zwar super nervig, aber das Ergebnis spricht ja für sich.

      Antworten

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.