VSS System Writerが表示されずバックアップに失敗する

Last Update: feedback 共有

※ 本記事は弊社の Technet から移行した記事です。
いつも弊社製品をご利用いただきまして誠にありがとうございます。日本マイクロソフトの Windows サポートチームです。

現象
Windows Server で、System State のバックアップを行うとバックアップに失敗する。
vssadmin list writers コマンドにて VSS ライタの状況を確認すると”System Writer” が表示されていない。
“System Writer” が表示されない現象は、以下の要因があげられます。

主な要因について

  1. ファイルのアクセス権が何らかの理由で失われている場合
  2. ライターをホストするプロセス、または、COM+ Event System サービスが稼動していない場合
  3. サービスのセキュリティ権限が何らかの理由で失われている場合
  4. VSS ライターに関する初期化が何らかの理由にて失敗している場合

各要因の説明と対処方法は以下の通りとなります。

1. ファイルのアクセス権が何らかの理由で失われている場合
ファイルのアクセス権やサービスのセキュリティ権限に問題がある場合、イベント ログに Microsoft-Windows-CAPI2 513 (または 512) イベントが記録されている可能性があります。
このイベントが発生している場合、技術情報 2009272 の対処方法を実施します。

技術情報 2009272 より抜粋

Takeown /f %windir%\winsxs\temp\PendingRenames /a    
icacls %windir%\winsxs\temp\PendingRenames /grant "NT AUTHORITY\SYSTEM:(RX)"    
icacls %windir%\winsxs\temp\PendingRenames /grant "NT Service\trustedinstaller:(F)"    
icacls %windir%\winsxs\temp\PendingRenames /grant BUILTIN\Users:(RX)    
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    

上記、対処方法を実施後、vssadmin list writers コマンドを実施し、”System Writer” が表示されることを確認します。
System State backup using Windows Server Backup fails with error: System writer is not found in the backup

2. ライターをホストするプロセス、または、COM+ Event System サービスが稼動していない場合
また、ライターと VSS との通信は COM 経由で行われますので、COM+ Event System サービスも動作している必要があります。
Cryptgraphic Services および Volume Shadow Copy サービスの起動を確認、起動していない場合は起動させ、”System Writer” が表示されることを確認します。
なお、サービスが起動しない、起動しているのに “System Writer” が表示されない場合、以下の対処を引き続き行います。

3. サービスのセキュリティ権限が何らかの理由で失われている場合
Cryptgraphic Services および Volume Shadow Copy サービスが起動しない場合、サービスを実行するためのセキュリティ権限が何らかの理由で失われている可能性があります。
各サービスのセキュリティ権限を以下の方法で確認します。
コマンド プロンプトより、つぎのコマンドを実施し、時現在の設定を確認します。

sc sdshow cryptsvc    
sc sdshow EventSystem    

念のため、上記コマンドの実行時、出力結果をリダイレクトでテキスト ファイルに出力する方法等により、バックアップを取得しておきます。
実行例>

sc sdshow cryptsvc > cryptsvc.txt    
sc sdshow EventSystem > EventSystem.txt    

出力されたテキスト ファイルと以下の内容と比較します。
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
上記と異なる場合には、cs sdset コマンドを実行します。
実行例>

Sc sdset cryptsvc D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)    
sc sdset EventSystem D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)    

Cryptographic Service を再起動後に “System Writer” が表示されることを確認します。

4. VSS ライターに関する初期化が何らかの理由にて失敗している場合
VSS ライターの初期化について少し解説します。
VSS Requestor よりバックアップを行う場合、VSS API GatherWriterMetadata を実行し、各 VSS Writerに関する Writer Metadata Document と呼ばれるメタデータ情報を取得する必要があります。
その際、VSSサービスは、System Writerを含むすべてのVSS Writerに対してIdentifyイベントを送り、各自のメタデータ情報を準備させ、参照できるように要求します。
.Net Frameworkが実装されている環境において、System Writerは独自のメタデータ情報を準備するために、%WinDir%\Microsoft.Net\Framework 配下のサブフォルダを列挙して処理を進める必要があります。
このフォルダにあるサブフォルダ数が 1,000 個以上存在する場合、システム実装上の制限によりSystem Writer がメタデータ情報を正しく準備できず、その結果、”System Writer” が表示されない現象が発生します。
IVssBackupComponents::GatherWriterMetadata method
Overview of Backup Initialization - Writer Actions during Backup Initialization
この現象を回避するには、次の対処を行います。

対処方法
以下に Microsoft.NET\Framework\v2.0.50727 を例に、Temporary ASP.NET Files フォルダを別の場所に移動する方法を紹介します。

  1. Temporary ASP.NET Files フォルダの移動先となるフォルダを作成します。
    例 : “c:\ASPTEMP”
  2. “C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files” と同じアクセス権を設定します。
  3. “C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files” 内のフォルダ、ファイルを手順 1. で作成したフォルダに移動させるか削除を行います。
  4. IIS の構成ファイル Web.config を開きます。
    C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Web.config
  5. Web.config に tempDirectory 属性を追加します。
    tempDirectory 属性の追加例:
  6. IIS サービスを再起動します。

参照資料
compilation 要素 (ASP.NET 設定スキーマ)
How To Edit the Configuration of an ASP.NET Application
http://support.microsoft.com/kb/815178/ja (機械翻訳)
IIS を再起動する