Огляд
Ми мали цю проблему на деяких віртуальних серверах, переміщених від "хмарного" постачальника назад до нашого внутрішнього центру обробки даних. Першопричиною були дозволи на %SystemRoot%\System32\catroot2
папку. Існує ряд відмінностей між дозволами на цю папку на здоровому сервері та тими, що на перенесеному сервері. Я вважаю, що ключовим було те, TrustedInstaller
чого не було full access
.
Додаткові симптоми
Переглядаючи журнал додатків у переглядачі подій, ми побачили ряд помилок:
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).
Підказка міститься в тексті помилки ESENT; тобто дозволи видавати доступ до файлу в папці catroot2.
Дозвіл
Надайте повний контроль обліковому запису Trusted Installer папці catroot2 та її дітям.
У випадку, якщо цього недостатньо, для порівняння, запуск icacls %systemroot%\system32\catroot2
на здоровому сервері дає це:
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)
Примітка. Щоб додати довіреного інсталятора, вам потрібно буде пошукати на локальних комп'ютерних облікових записах nt service\trustedinstaller
.
Після заміни дозволів catroot2
переконайтесь, що ви натискаєте replace permissions on child objects & containers
прапорець, щоб переконатися, що дочірні елементи також вирішили свої дозволи.
Для самого виправлення не потрібно перезавантажувати (хоча очевидно, щойно оновлення почнуть працювати знову, вам, ймовірно, доведеться перезавантажити їх).