Błąd 0x80073712 podczas instalowania aktualizacji i składników w systemie Windows Server 2016 i Windows 10

W obliczu interesującego błędu 0x80073712 podczas instalowania aktualizacji w systemie Windows Server 2016. Jak się później okazało, ten błąd jest związany z uszkodzeniem pamięci komponentów Windows. W tym artykule opisano, jak naprawić składnicę w Windows 10 / 8.1 i Windows Server 2016/2012 R2 i przywrócić Windows Update do działania..

Podczas próby zainstalowania aktualizacji w Windows Update pojawia się błąd:

Brakuje niektórych plików aktualizacji lub występują problemy. Spróbujemy pobrać aktualizację później.

Kod błędu: (0x80073712)

Brakuje niektórych plików aktualizacji lub występują problemy. Spróbujemy pobrać aktualizację.

Kod błędu: (0x80073712)

Przede wszystkim próbowałem zresetować stan usługi Windows Update i wyczyścić katalog SoftwareDistribution zgodnie z zaleceniami z artykułu „Resetowanie Windows Update”, ale to nie pomogło.

Za pomocą polecenia odrzuć / online / pobierz-pakiety Sprawdziłem, czy wszystkie aktualizacje mają status Zainstalowano.

Jeśli niektóre aktualizacje mają Zainstaluj w toku, możesz poprawnie usunąć polecenie DISM (użyj swojej tożsamości pakietu):

DISM.exe / Online / Remove-Package /PackageName:Package_for_KB4485447~31bf3856ad364e35~amd64~~10.0.1.1 / quiet / norestart

Przez długi czas decydowałem, jak podejść do tego problemu, ale w ramach rozwiązywania problemów musiałem zainstalować składnik .Net Framework 3.5 w systemie Windows Server 2016. Podczas instalowania komponentu .Net za pomocą DISM pojawił się typowy błąd, który skłonił mnie do dalszych działań:

Żądanie dodania lub usunięcia funkcji na określonym serwerze nie powiodło się. Instalacja jednej lub więcej ról, usług ról lub funkcji nie powiodła się. Składnik komponentów został uszkodzony. Błąd: 0x80073712.

Magazyn komponentów jest uszkodzony. Błąd: 0x80073712.

W takim przypadku możesz znaleźć następujący wiersz w pliku CBS.log (% WinDir% \ Logs \ CBS \ CBS.log):

[HRESULT = 0x80073712 - ERROR_SXS_COMPONENT_STORE_CORRUPT]

Jak widać, z jakiegoś powodu pamięć komponentów systemu jest uszkodzona, w wyniku czego usługa Windows Update nie może odebrać danych z manifestu CBS (obsługa przez komponenty) niezbędnego do zainstalowania aktualizacji. Możesz przywrócić pamięć komponentów za pomocą wbudowanej funkcji DISM.

W najprostszym przypadku podczas przywracania magazynu składników nie jest potrzebny dysk instalacyjny z dystrybucją systemu Windows. W takim przypadku system użyje plików magazynu na dysku lokalnym i witrynie Windows Update do odzyskania (lokalnego serwera WSUS nie można użyć do przywrócenia składników).

Najpierw sprawdź status składnicy za pomocą polecenia:

dism / online / cleanup-image / checkhealth

Jeśli po analizie pojawi się komunikat „Składnik można naprawić”, możesz spróbować przywrócić składnicę za pomocą polecenia:

dism / online / cleanup-image / restorehealth

W niektórych przypadkach to wystarczy. Ale moje narzędzie DISM wygenerowało błąd:

Błąd: 0x800f0906
Nie można pobrać plików źródłowych.

W takim przypadku odzyskiwanie systemu Windows wymaga dysku instalacyjnego z dystrybucją systemu Windows. Załóżmy, że zamontowałeś plik ISO z dystrybucją systemu Windows. Teraz musisz sprawdzić listę bieżących wersji systemu Windows w pliku install.wim na zamontowanym obrazie (dysku):

dism / Get-WimInfo /WimFile:e:\sources\install.wim

W moim przypadku jest zainstalowana edycja systemu Windows Server 2016 Standard (Desktop Experience), więc w następnym poleceniu używam jego indeksu - 2).

dism / online / cleanup-image / restorehealth /source:e:\sources\install.wim:2 / LimitAccess

Sprawdź ponownie stan magazynu składników:

Dism / Online / Cleanup-Image / CheckHealth

DISM powinien zwrócić: Nie wykryto uszkodzenia składnicy.

Po przywróceniu magazynu po prostu uruchom ponownie system Windows i sprawdź, czy aktualizacje i składniki systemu Windows zostały zainstalowane bez błędów.