Tổng quat
Chúng tôi đã gặp sự cố này trên một số máy chủ ảo được di chuyển từ nhà cung cấp "đám mây" trở lại trung tâm dữ liệu nội bộ của chúng tôi. Nguyên nhân gốc là quyền cho %SystemRoot%\System32\catroot2
thư mục. Có một số khác biệt giữa các quyền trên thư mục đó trên máy chủ khỏe so với các quyền trên máy chủ được di chuyển. Tôi tin rằng điều quan trọng là TrustedInstaller
không có full access
.
Triệu chứng bổ sung
Nhìn vào Nhật ký ứng dụng trong trình xem sự kiện, chúng tôi thấy một số lỗi:
Source: CAPI2
EventId: 257
Text: The Cryptographic Services service failed to initialize the Catalog Database. The ESENT error was: -1032.
Source: ESENT
EventId: 490
Text: Catalog Database (416) Catalog Database: An attempt to open the file "C:\Windows\system32\CatRoot2\{127D0A1D-4EF2-11D1-8608-00C04FC295EE}\catdb" for read / write access failed with system error 5 (0x00000005): "Access is denied. ". The open file operation will fail with error -1032 (0xfffffbf8).
Manh mối nằm trong văn bản lỗi của ESENT; tức là quyền truy cập vào một tệp trong thư mục catroot2.
Nghị quyết
Cung cấp cho tài khoản Trusted Installer toàn quyền kiểm soát thư mục catroot2 và các thư mục con của nó.
Trong trường hợp đó là không đủ, để so sánh, chạy icacls %systemroot%\system32\catroot2
trên một máy chủ khỏe mạnh mang lại điều này:
C:\Windows\system32\catroot2 NT SERVICE\CryptSvc:(F)
NT SERVICE\CryptSvc:(OI)(CI)(IO)(F)
NT SERVICE\TrustedInstaller:(I)(F)
NT SERVICE\TrustedInstaller:(I)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
BUILTIN\Users:(I)(RX)
BUILTIN\Users:(I)(OI)(CI)(IO)(GR,GE)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(OI)(CI)(IO)(GR,GE)
Lưu ý: Để thêm Trình cài đặt đáng tin cậy, bạn sẽ cần tìm kiếm trên các tài khoản máy tính cục bộ nt service\trustedinstaller
.
Sau khi thay thế quyền catroot2
, hãy đảm bảo bạn nhấp vào replace permissions on child objects & containers
hộp kiểm để đảm bảo rằng các mục con cũng có quyền được giải quyết.
Không cần khởi động lại cho bản sửa lỗi (mặc dù rõ ràng, một khi các bản cập nhật bắt đầu hoạt động trở lại, bạn có thể sẽ cần phải khởi động lại cho các bản sửa lỗi đó).