web-dev-qa-db-ja.com

Application \ CAPI2イベント513-システムライターオブジェクトのOnIdentity()呼び出しの処理中に暗号化サービスが失敗しました

チームメンバーから、Windows Server 2008(2008 R2ではない)ベースのMSSQLサーバーの1つがアプリケーションイベントログにCAPI2イベントID 513エラーを生成し始めたことを知らせました:

Application\CAPI2

Cryptographic Services failed while processing the OnIdentity() call in the System Writer Object.

Details:
AddCoreCsiFiles: BeginFileEnumeration() failed.

System Error: Access is denied.



小さなPowerShellは、問題が08/06/14に始まり、主に毎日22:00後に発生するようであることを明らかにします:

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

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



知りたくない? System Writer Objectは何に使用されるのでしょうか。 シャドウコピー !おお!今月、Veeamを使用して、この仮想マシンのVSSベースのApplication Awareバックアップを開始しました。当然、バックアッププロセスは22:00に開始されます。これは、「ランダムな」時間に発生するエラーではなく、繰り返し発生する頻度を説明します。

興味深いことに、Veeamはこれを失敗したバックアップ試行として登録しなかったため、復元ポイントareは実際にトランザクションの整合性があるのか​​と思います。とにかく、私はVeeamバックアップログをすばやく検索しましたが、明らかに問題はありませんでしたが、それらを詳しく確認し、それらの復元ポイントからのリカバリがトランザクションで一貫していることを確認する価値があります。

イベントID 513 TechNetリファレンス 推奨される解決策は、NTFSアクセス許可の問題が原因である可能性があることを示していますが、C:\Windows\Registration COM +登録フォルダには適切な権限があります。

アイデア?

5
user62491

マティアスR.ジェッセン 私は正しい方向に向けられました。これは有名なWinSxSフォルダです。ただし、イベントログにVSSエラーが表示されなかったため、他の何かを壊すことのないように、NTFSのすべてのアクセス許可を変更することに少し躊躇しました。

レッスン1:読む

私は戻って イベントID 513 TechNetリファレンス をもう一度読み、Verifyセクションの下で、System Writervssadmin list writersを使用するVSSライター。確かにそうではありません。 教訓#1:KB/TechNet/Blog全体を読む

レッスン2:再現

もう少し調査して、私は偶然出会った Missing System Writer Case Explained これは、問題の原因がCryptographic Servicesにあることを示しているようです。 CryptSVCサービスを停止して開始することにより、CAPI2エラーで自由に再現できることがわかりました。 教訓#2:エラーを思いのままに再現する方法を考えてください。

ProcMonの使用

この時点で、私は post's の指示にほとんど従いました。 svchostのインスタンスがCryptSVCをラップしていたPIDを Task Manager を使用して見つけました。問題のサーバーを再起動できる場合は、代わりにCryptSVCsc config を使用して独自のプロセスとして実行することもできます。 ProcMonにどの程度深く入り込むかに応じて、並べ替える必要があるイベントの量を減らすために、単一のPIDでサービスを分離することは価値があります。

ここから、古き良きProcMonに戻ります。 svchostをラップしているCryptSVCプロセスで使用されているものではないすべてのPIDを除外するフィルターをセットアップします。

ProcMon Exclude Filter

レッスン3:ProcMonを愛する

SUCCESSの結果を持つすべてのイベントを除外する、信頼できるファーストパスフィルターを適用しました。これにより、イベントが31,118からはるかに管理しやすい139に減り、下部で、私が探していたACCESS DENIEDイベントが、WinSxSフォルダー(C:\Windows\winsxs\FileMaps\$$.cdf-ms)に驚くことなく見つかりました。 教訓#3:ProcMonの使い方と愛を学ぶ

ProcMon ACCESS DENIED on C:\Windows\winsxs\FileMaps\$$.cdf-ms

レッスン4:確認

それで? KB2009272 Mathiasがリンクしているという解決策がありますが、これで理由がわかります教訓#4:推測しないでください、知ってください!

レッスン5:小さく始める

解像度は KB2009272 で説明されているとおりです。所有権を取得し、FileMapsフォルダーのアクセス許可をリセットしてから、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



そして...私たちはリフトオフしました! System WriterがVSSライターとして利用できるようになりました。 PendingRenameフォルダーのアクセス許可を変更する必要はありません。 教訓#5:最小の変更から始めて、より多くのことに影響する変更に取り組みます。

C:\Users\administrator>vssadmin list writers
vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
(C) Copyright 2001-2005 Microsoft Corp.

Writer name: 'System Writer'
   Writer Id: {e8132975-6f93-4464-a53e-1050253ae220}
   Writer Instance Id: {98c52075-429a-4487-8b77-e42b18767458}
   State: [1] Stable
   Last error: No error


CryptSVC atを再起動しても、CAPI2エラーは生成されなくなり、1日または2日の監視後に解決されたように見えます。

6
user62491