Panoramica
Abbiamo riscontrato questo problema su alcuni server virtuali migrati da un provider "cloud" al nostro data center interno. La causa principale erano le autorizzazioni per la %SystemRoot%\System32\catroot2
cartella. C'erano alcune differenze tra le autorizzazioni su quella cartella su un server integro rispetto a quelle sul server migrato. Credo che quello chiave fosse quello TrustedInstaller
che non aveva full access
.
Sintomi aggiuntivi
Guardando il registro dell'applicazione nel Visualizzatore eventi, abbiamo riscontrato una serie di errori:
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).
L'indizio è nel testo dell'errore ESENT; vale a dire problemi di autorizzazione durante l'accesso a un file nella cartella catroot2.
Risoluzione
Dai all'account Trusted Installer il pieno controllo della cartella catroot2 e dei suoi figli.
Nel caso in cui ciò non bastasse, per fare un confronto, l'esecuzione icacls %systemroot%\system32\catroot2
su un server sano dà questo:
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)
NB: per aggiungere Trusted Installer, dovrai cercare negli account dei computer locali nt service\trustedinstaller
.
Dopo aver sostituito le autorizzazioni attivate catroot2
, assicurarsi di fare clic sulla replace permissions on child objects & containers
casella di controllo per assicurarsi che anche le voci secondarie vengano risolte.
Nessun riavvio è necessario per la correzione stessa (anche se ovviamente, una volta che gli aggiornamenti ricominceranno a funzionare, probabilmente dovrai riavviare per quelli).