Tôi gặp mã lỗi 0x80073712 khi cố gắng cài đặt các bản cập nhật bảo mật trên Windows Server 2016. Như tôi đã tìm thấy sau đó, lỗi này có liên quan đến cửa hàng thành phần Windows bị hỏng. Trong bài viết này, chúng ta sẽ xem xét cách sửa chữa kho lưu trữ thành phần trong Windows 10 hoặc Windows Server 2016/2012 R2 và khôi phục hoạt động chính xác của dịch vụ Windows Update.
Khi cố gắng cài đặt các bản cập nhật trong Windows Update, một lỗi sẽ xuất hiện:
Some update files are missing or have problems. We’ll try to download the update. Error code: (0x80073712)
Trước tiên, tôi đã cố gắng đặt lại cài đặt tác nhân Windows Update và dọn dẹp thư mục SoftwareDistribution như được đề xuất trong bài viết “Cách đặt lại cài đặt Windows Update?”, Nhưng không giúp được gì.
Sau đó, sử dụng dism /online /get-packages
, tôi đã kiểm tra xem tất cả các bản cập nhật hệ thống đều nằm trong mục Đã cài đặt trạng thái.
Nếu bất kỳ bản cập nhật nào có Cài đặt đang chờ xử lý trạng thái, bạn có thể xóa chúng một cách chính xác bằng lệnh DISM này (sử dụng chuỗi Nhận dạng gói của bạn):
DISM.exe /Online /Remove-Package /PackageName:Package_for_KB4520724~31bf3856ad364e35~amd64~~14393.3320.1.1 /quiet /norestart
Tôi đã mất khá nhiều thời gian để tìm cách giải quyết lỗi Windows Update này, tuy nhiên trong quá trình khắc phục sự cố tôi phải cài đặt .Net Framework 3.5 trên Windows Server 2016. Trong quá trình cài đặt thành phần .Net bằng lệnh DISM, lỗi điển hình xuất hiện, cung cấp cho tôi chìa khóa cho các hành động tiếp theo:
The request to add or remove features on the specified server failed. Installation of one or more roles, role services or features failed. The component store has been corrupted. Error: 0x80073712.
Đồng thời, bạn có thể tìm thấy lỗi sau trong CBS.log của mình (% WinDir% \ Logs \ CBS \ CBS.log):
[HRESULT = 0x80073712 - ERROR_SXS_COMPONENT_STORE_CORRUPT]
Như bạn có thể thấy, kho linh kiện trên máy tính của bạn đã bị hỏng vì một lý do nào đó. Vì vậy, Windows Update không thể lấy dữ liệu từ tệp kê khai CBS (Dịch vụ Dựa trên Thành phần) cần thiết để cài đặt các bản cập nhật. Bạn có thể khôi phục kho thành phần bằng cách sử dụng các tính năng DISM tích hợp sẵn.
Trong trường hợp dễ nhất, bạn sẽ không cần hình ảnh cài đặt Windows (đĩa) để khôi phục kho lưu trữ thành phần. Sau đó, hệ thống sẽ sử dụng các tệp lưu trữ thành phần nguồn trên đĩa cục bộ của bạn và trang web Windows Update để khôi phục (không thể sử dụng máy chủ WSUS cục bộ để khôi phục lưu trữ thành phần).
Trước tiên, hãy kiểm tra trạng thái cửa hàng thành phần của bạn bằng lệnh:
dism /online /cleanup-image /checkhealth
Nếu bạn thấy thông báo “ cửa hàng linh kiện có thể sửa chữa được ”Sau khi phân tích, bạn có thể thử khôi phục kho thành phần của mình bằng lệnh sau:
dism /online /cleanup-image /restorehealth
Trong một số trường hợp, nó là đủ để làm điều đó. Nhưng trong tình huống của tôi, DISM đã trả lại lỗi này:
Error: 0x800f0906 The source files could not be downloaded.
Trong trường hợp này, để khôi phục Windows, bạn cần một đĩa cài đặt với bản phân phối Windows của mình. Giả sử, bạn đã gắn tệp ISO cài đặt Windows Server của mình. Sau đó, kiểm tra danh sách các phiên bản Windows hiện tại trong tệp install.wim trên ảnh (đĩa) được gắn kết:
dism /Get-WimInfo /WimFile:e:\sources\install.wim
Tôi đã cài đặt Windows Server 2016 Standard (Desktop Experience), vì vậy tôi sẽ sử dụng chỉ mục của nó ( 2 ) trong lệnh sau:
dism /online /cleanup-image /restorehealth /source:e:\sources\install.wim:2 /LimitAccess
Kiểm tra lại trạng thái của cửa hàng thành phần:
Dism /Online /Cleanup-Image /CheckHealth
DISM sẽ trả về:No component store corruption detected
.
Sau khi cửa hàng thành phần đã được khôi phục, hãy khởi động lại Windows và đảm bảo rằng các bản cập nhật Windows