Unter Windows Server 2016 gibt es wohl gelegentlich den Fehler, dass sich keine Features wie das .NET 3.5-Framework auf dieser Plattform installieren oder andere Server-Rollen hinzuzufügen lassen. Es wird der Fehlercode 0x80073701 geliefert. Ursache sind wohl ein fehlerhafte Registrierungseinträge, die auf fehlende Sprachpakete verweisen. Hier einige Hinweise zu diesem Problem samt Workaround
Anzeige
Die Fehlerbeschreibung
Ich bin bereits vor einigen Tagen bei askwoody.com auf dieses Problem gestoßen. Dort schreibt Susan Bradley, dass man kein .NET 3.5-Framework auf Windows Server Essentials 2016 als Feture hinzufügen könne. Ich möchte das aber etwas breiter aufstelle, da es generell das Hinzufügen von Server-Rollen zu betreffen scheint. So lässt sich bei betroffenen Systemen auch keine Rolle hinzufügen, nachdem der Server zum Domain Controller hochgestuft wurde, wie man bei spiceworks.com in diesen Thread nachlesen kann:
server 2016 unable to add roles or features after making server a domain control
I am having a problem i cannot install roles or features at all. I installed windows server 2016 standard with desktop as a hardware machine not virtual joined existing domain installed anti-virus software a few tools then i added active directory role promoted to domain controller then made it the primary controller. I noticed that windows server backup was not installed by default and tried to add it. failed using both GUI wizard and with PS i also tried to add IIS server role with GUI and get the same error this is the output from PS ive tried using the -source switch leading to the dell install DVD and the error doesn't change been searching internet for a week not much information out there on server 2016 any help would be appreciated.
Der Betroffene berichtet, dass er den Fehlercode 0x80073701 beim Hinzufügen von Rollen erhalte. Bei anderen Betroffenen endet das Hinzufügen von Features wie .NET Framework 3.5 mit diesem Fehler.
(Quelle: Askwoody.com)
Sucht man nach 'windows server 2016 role Error 0x80073701', werden eine Reihe Treffer angezeigt.
Anzeige
Was bedeutet der Error 0x80073701?
Der Fehlercode 0x80073701 steht für ERROR_SXS_ASSEMBLY_MISSING, d.h., in Windows (oder im Update-Store wird eine Assembly referenziert, die nicht gefunden werden konnte.
Ohne diese Assembly wird sich die Rolle oder das Feature nicht installieren lassen. Den Fehlercode habe ich bereits mehrfach in anderem Zusammenhang im Blog thematisiert (siehe Artikel am Beitragsende).
Was man zur Diagnose tun kann
Die einfachste Lösung besteht in der Neuinstallation des Betriebssystems – was am Ende des Tages in viele Fällen wohl der einzige Ausweg ist. Bei Windows Server 2016 wird man diesen Aufwand scheuen, so dass man versuchen kann, die Ursache zu finden.
Als erstes wäre der Versuch zu nennen, Windows auf beschädigte Dateien zu scannen und diese reparieren zu lassen (siehe Windows 8: Komponentenstore reparieren). Das wird i.d.R. nicht wirklich helfen – aber man bekommt Protokolldateien, die man auswerten kann.
Hierzu navigiert man im Explorer zum Order %windir%\logs und kopiert die Protokolldateien cbs\cbs.log und dism\dism.log auf den Desktop oder in einen anderen lokalen Ordner. Im Anschluss öffnet man die Dateien in einem Editor und sucht in den Log-Einträgen nach dem Fehlercode.
Fehlerhafte Sprachdateieinträge in der Registry
Geht man die Fundstellen im Internet durch, kristallisieren sich fehlerhafte Registrierungseinträge für Sprachpakete als Ursache für den Fehler 0x80073701 heraus (siehe auch diesen Technet-Forenbeitrag). Hier die Schritte, wie man das Problem eventuell bereinigen kann.
1. Starten Sie den Registrierungseditor mit administrativen Berechtigungen (Als Administrator ausführen).
2. Navigieren Sie zu folgendem Registrierungsschlüssel.
HKLM\Software\Microsoft\Windows\CurrentVersion\
Component Based Servicing\Package Detect
3. Entfernen Sie alle Unterschlüssel, die auf die bemängelten Sprachpakete (Language-Packs) verweisen.
Zum Entfernen muss man den Besitz der betreffenden Schlüssel übernehmen oder den Registrierungseditor mit PsExec als System aufrufen. In der Spiceworks-Community waren es hier Einträge auf Einträge auf "fr_FR"-Language-Packs, die störten. Auf server-fault waren es hier Einträge auf "fr_FR"- und 'de-DE"-Language-Packs, die störten. Im Technet-Forenthread störte ein Verweis auf ein spanisches Sprachpaket. Bei askwoody.com ist ein "tr_TR"-Language-Pack als Problem erwähnt. Die betroffenen Sprachpakete müssen über die .log-Dateien und deren Error-Einträge ermittelt werden. Warum dort fehlerhafte Einträge vorkommen, ist mir unklar.
Noch ein Fragment
Direkt nach dem Posten dieses Beitrags gab es noch eine Rückmeldung von Blog-Leser Karl auf Twitter. Ich denke, er bezieht sich auf das .NET Framework 3.5. Ich hänge seine Tweets einfach mal an.
1/2 Alternativ kann man auch versuchen eine xml Datei in das Verzeichnis des Programms zu legen die wie die exe heisst, mit suffix .Config
Also z. B. Deinprogramm.exe.configIn vielen Fällen führt nur ein veralteter hardcode Eintrag in source dazu .net 3.5 zu installieren
— al Qamar (Karl) (@tweet_alqamar) 31. Dezember 2018
Und hier der ergänzende Tweet mit einem Verweis auf eine Fundstelle bei Microsoft.
2/2 Obwohl es nicht benötigt wird.
Dies lässt sich einfach überprüfen wenn die meldung zur Installation übersprungen wird und das Programm dennoch funktioniert. Weil es auch mit den .net 4.x klappt.https://t.co/q2dDyIXWvRIn den meisten Fällen funktioniert es wirklich.
— al Qamar (Karl) (@tweet_alqamar) 31. Dezember 2018
Vielleicht hilft es Betroffenen ja weiter. Beim Problem, dass Rollen nicht hinzugefügt werden können, dürfte der Ansatz nicht gangbar sein.
Ähnliche Artikel:
Win 7 SP1-Fehler 0x80073701 (Assembly Missing)
Windows 10 V1607/1703: Installationsprobleme bei KB4041676/KB4041691
Update-Kollateralschaden: .NET Framework 3.5 installiert nicht
Kleiner Tipp, falls SP 1 bei Windows 7 nicht installierbar ist
Side-by-Side-Konfiguration ungültig
Anzeige
Ich habe hier einen 2016 Server der sich keine Updates mehr installiert, diese brechen immer mit 0x80073701 ab…. aufeinmal seit Februar…
Hallo,
Ich weiß nicht ob das immer funktioniert, aber ich habe heute anscheinend erfolgreich geschafft diesen Fehler auf einem WIN26-Server zu beheben.
Nachdem auch bei mir standard DISM und SFC zu keinem Erfolg geführt hatten, habe ich die CBS.LOG nach dem Fehler verursachenden Package gesucht (in meinem Fall "Package_2038_for_KB4524152…"
Da es sich hierbei um ein Win-CU handelte, ich dieses aber nicht reinstallieren konnte, habe ich die .MSU- Datei mit 7z entpackt.
Dabei kommen einige Dateien um Vorschein, u.a. die "Windows10.0-KB4524152-x64.cab", die das eigentliche CU enthält.
DISM.exe /Online /Add-Package /PackagePath:"C:\temp\Windows10.0-KB4524152-x64.cab" hat dann die CAB noch einmal reinstalliert, und die fehlenden Pakete ergänzt.
Danach lies sich das aktuelle CU problemlos installieren.
Hello Hans,
It did work for me. I found a troubled KB in CBS.log. Using DISM with Add-Package option helped. Many thanks for this solution!
//Adrian
Hallo Hans,
zur Info
Die *.msu Pakete lassen sich auch mit
"expand -F:* update.msu ."
entpacken. Die Cab-Dateien lassen sich wiederum mit expand entpacken.
Die dabei entstandene Mum-Dateien können einzeln mit Dism installiert/integriert werden.
PS: WinRar bzw 7zip kann mit Cab-Dateien nicht umgehen.
Expand kenne ich schon, war in dem Moment aber zu faul, die Kommandozeile zu benutzen ;-)
Das mit der .mmu wusste ich noch nicht, würde aber bedeuten, das man das fehlende Paket direkt über die .mmu hätte installieren können. Was aber ggf. mehrere Durchläufe bedeutet hätte, weil u.U. mehr als ein Paket gefehlt hätte.