5 votes

Application\CAPI2 Événement 513 - Les services de chiffrement ont échoué lors du traitement de l'appel OnIdentity() dans l'objet System Writer

Un membre de l'équipe m'a informé qu'un de nos serveurs MSSQL basé sur Windows Server 2008 (pas 2008 R2) avait commencé à générer des erreurs d'ID d'événement 513 CAPI2 dans le journal d'événements de l'application :

Application\CAPI2

Les services de cryptographie ont échoué lors du traitement de l'appel OnIdentity() dans l'objet System Writer.

Détails : 
AddCoreCsiFiles: BeginFileEnumeration() a échoué.

Erreur système : L'accès est refusé.

Un peu de PowerShell révèle que le problème a commencé le 08/06/14 et semble principalement se produire après 22h00 quotidiennement :

PS C:\Users\Administrator> Get-EventLog -LogName Application | ? { $_.EventID -like "513" -and $_.Source -like "Microsoft-Windows-CAPI2" } | Select -Property TimeGenerated

TimeGenerated
-------------
18/08/2014 10:41:32
18/08/2014 10:25:17
18/08/2014 10:15:20
17/08/2014 22:55:41
17/08/2014 22:55:27
17/08/2014 22:55:26
16/08/2014 22:49:44
16/08/2014 22:49:28
16/08/2014 22:49:28
15/08/2014 22:52:11
15/08/2014 22:51:58
15/08/2014 22:51:57
15/08/2014 1:03:06
15/08/2014 1:02:45
15/08/2014 1:02:45
13/08/2014 22:58:49
13/08/2014 22:58:32
13/08/2014 22:58:31
12/08/2014 22:57:09
12/08/2014 22:56:56
12/08/2014 22:56:56
11/08/2014 22:56:13
11/08/2014 22:55:56
11/08/2014 22:55:55
10/08/2014 22:50:15
10/08/2014 22:50:04
10/08/2014 22:50:03
10/08/2014 7:12:09
10/08/2014 7:11:52
10/08/2014 7:11:51
08/08/2014 22:57:00
08/08/2014 22:56:44
08/08/2014 22:56:43
06/08/2014 21:47:26
06/08/2014 21:47:03
06/08/2014 21:47:02
06/08/2014 10:48:33

Curieux, n'est-ce pas ? Je me demande à quoi sert l'objet System Writer ? Shadow Copy ! Oh évidemment ! J'ai commencé à faire des sauvegardes Application Aware basées sur VSS de cette machine virtuelle en utilisant Veeam ce mois-ci. Naturellement, le processus de sauvegarde commence à 22h00, ce qui explique la fréquence répétée au lieu de l'erreur se produisant simplement à des moments "aléatoires".

Curieusement, Veeam n'a pas enregistré cela comme une tentative de sauvegarde échouée, ce qui me fait me demander si les points de restauration sont en fait transactionnels cohérents. Quoi qu'il en soit, j'ai fait une recherche rapide dans les journaux de sauvegarde Veeam et n'ai rien trouvé évidemment erroné, mais il vaut probablement la peine de les examiner de plus près et de confirmer qu'une récupération à partir de ces points de restauration est transactionnellement cohérente.

La référence TechNet de l'ID d'événement 513 recommande une résolution indiquant qu'un problème de permission NTFS pourrait être en cause, cependant le dossier d'enregistrement COM+ C:\Windows\Registration a les permissions appropriées.

Des idées ?

0 votes

Il semble que WinSxS soit en cause ici : support.microsoft.com/kb/2009272

6voto

Mathias R. Jessen m'a orienté dans la bonne direction, l'infâme dossier WinSxS. Cependant, je n'ai pas vu d'erreurs VSS dans le journal des événements, ce qui m'a rendu un peu hésitant à supprimer toutes les autorisations NTFS de peur de casser quelque chose d'autre.

Leçon 1 : Lire

Je suis retourné lire à nouveau la référence TechNet de l'ID d'événement 513 et j'ai noté qu'à la section Vérifier, il était recommandé de vérifier si le System Writer était disponible en tant que rédacteur VSS en utilisant vssadmin list writers et il ne l'était PAS. Leçon apprise #1 : Lire tout le KB/TechNet/Blog

Leçon 2 : Reproduire

En faisant un peu plus de recherches, je suis tombé sur Explication du cas du rédacteur système manquant qui semblait indiquer que le problème provenait des Services de cryptographie. J'ai découvert que je pouvais reproduire l'erreur CAPI2 à volonté en arrêtant et redémarrant le service CryptSVC. Leçon apprise #2 : Essayez de trouver un moyen de reproduire votre erreur à volonté.

Utilisation de ProcMon

À ce stade, j'ai à peu près suivi les instructions des posts. J'ai localisé le PID de l'instance de svchost enveloppant CryptSVC en utilisant Gestionnaire des tâches. Vous pourriez également forcer CryptSVC à s'exécuter en tant que son propre processus en utilisant sc config si vous pouvez redémarrer le serveur en question. En fonction de la profondeur de vos recherches avec ProcMon, il est utile d'isoler les services sous un seul PID pour réduire le nombre d'événements à trier.

Ensuite, retour à bon vieux ProcMon. Configurez un filtre pour exclure tous les PID qui ne sont pas ceux utilisés par le processus svchost enveloppant CryptSVC :

Filtre d'exclusion ProcMon

Leçon 3 : Aimez ProcMon

J'ai appliqué mon fidèle premier filtre qui consiste à exclure tous les événements ayant pour résultat SUCCESS. Cela a réduit le nombre d'événements de 31 118 à un nombre beaucoup plus gérable de 139 et en bas de la liste, j'ai trouvé l'événement ACCESS DENIED que je recherchais, pas étonnamment dans le dossier WinSxS (C:\Windows\winsxs\FileMaps\$$.cdf-ms). Leçon apprise #3 : Apprenez à utiliser et à aimer ProcMon

ACCÈS REFUSÉ dans C:\Windows\winsxs\FileMaps\$$.cdf-ms par ProcMon

Leçon 4 : Vérifier

Et maintenant ? KB2009272 que Mathias a lié contient la solution mais maintenant je sais pourquoi. Leçon apprise #4 : Ne pas deviner, savoir !

Leçon 5 : Commencer par des petites étapes

La résolution est exactement telle qu'expliquée dans KB2009272. Prenez possession et réinitialisez les autorisations du dossier FileMaps puis redémarrez CryptSVC :

Takeown /f %windir%\winsxs\filemaps\* /a
icacls %windir%\winsxs\filemaps\*.* /grant "NT AUTHORITY\SYSTEM:(RX)"
icacls %windir%\winsxs\filemaps\*.* /grant "NT Service\trustedinstaller:(F)"
icacls %windir%\winsxs\filemaps\*.* /grant BUILTIN\Users:(RX)

net stop cryptsvc
net start cryptsvc

et... c'est parti ! Le System Writer est désormais disponible en tant que rédacteur VSS. Pas besoin de changer les autorisations pour le dossier PendingRename. Leçon apprise #5 : Commencez par les changements les plus minimes et avancez vers des changements qui affectent plus de choses.

C:\Users\administrator>vssadmin list writers
vssadmin 1.1 - Outil en ligne de commande d'administration du service de cliché instantané du volume
(C) Copyright 2001-2005 Microsoft Corp.

Nom de l'écrivain : 'System Writer'
   ID de l'écrivain : {e8132975-6f93-4464-a53e-1050253ae220}
   ID d'instance de l'écrivain : {98c52075-429a-4487-8b77-e42b18767458}
   État : [1] Stable
   Dernière erreur : Aucune erreur

Redémarrer CryptSVC à volonté ne produisait plus l'erreur CAPI2 et après un jour ou deux de surveillance, tout semble résolu.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X