チームメンバーから、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 +登録フォルダには適切な権限があります。
アイデア?
マティアスR.ジェッセン 私は正しい方向に向けられました。これは有名なWinSxSフォルダです。ただし、イベントログにVSSエラーが表示されなかったため、他の何かを壊すことのないように、NTFSのすべてのアクセス許可を変更することに少し躊躇しました。
私は戻って イベントID 513 TechNetリファレンス をもう一度読み、Verifyセクションの下で、System Writer
がvssadmin list writers
を使用するVSSライター。確かにそうではありません。 教訓#1:KB/TechNet/Blog全体を読む
もう少し調査して、私は偶然出会った Missing System Writer Case Explained これは、問題の原因がCryptographic Servicesにあることを示しているようです。 CryptSVC
サービスを停止して開始することにより、CAPI2
エラーで自由に再現できることがわかりました。 教訓#2:エラーを思いのままに再現する方法を考えてください。
この時点で、私は post's の指示にほとんど従いました。 svchost
のインスタンスがCryptSVC
をラップしていたPIDを Task Manager を使用して見つけました。問題のサーバーを再起動できる場合は、代わりにCryptSVC
を sc config を使用して独自のプロセスとして実行することもできます。 ProcMonにどの程度深く入り込むかに応じて、並べ替える必要があるイベントの量を減らすために、単一のPIDでサービスを分離することは価値があります。
ここから、古き良きProcMonに戻ります。 svchost
をラップしているCryptSVC
プロセスで使用されているものではないすべてのPIDを除外するフィルターをセットアップします。
SUCCESS
の結果を持つすべてのイベントを除外する、信頼できるファーストパスフィルターを適用しました。これにより、イベントが31,118からはるかに管理しやすい139に減り、下部で、私が探していたACCESS DENIED
イベントが、WinSxS
フォルダー(C:\Windows\winsxs\FileMaps\$$.cdf-ms
)に驚くことなく見つかりました。 教訓#3:ProcMonの使い方と愛を学ぶ
それで? KB2009272 Mathiasがリンクしているという解決策がありますが、これで理由がわかります。 教訓#4:推測しないでください、知ってください!
解像度は 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日の監視後に解決されたように見えます。