Windows Server 2003 R2 および Windows Server 2003 SP1 でのシステム状態のバックアップと復元
Note
このトピックは、Windows Server 2003 R2 および Windows Server 2003 Service Pack 1 (SP1) にのみ適用されます。 その他のオペレーティング システムのバージョンについては、「システムの状態のバックアップと復元」を参照してください。
Note
Microsoft は、Windows (すべてのリリース) でのオンライン システム状態の復元の実装に関して、開発者または IT プロフェッショナル向けのテクニカル サポートを提供していません。
VSS のバックアップまたは復元を実行する場合、Windows システムの状態は、主要なオペレーティング システム要素および対応するファイルのコレクションとして定義されます。 これらの要素は、バックアップおよび復元の操作では常に 1 つの単位として扱う必要があります。
Windows Server 2003 R2 および Windows Server 2003 SP1 では、これらのオブジェクトを 1 つの単位として扱うように設計された Windows API がないため、リクエスターがこれらのコンポーネントを一貫した方法で処理できるように、独自のシステム状態オブジェクトを用意することをお勧めします。
VSS は、システム ファイル保護 (WFP) によってシステム状態ファイルが破損から保護される Windows バージョンで実行されるため、システム状態をバックアップおよび復元するには特別な手順が必要です。
システム状態は、次の要素で構成されます。
- WFP によって保護されているすべてのファイルと、ntldr、ntdetect、パフォーマンス カウンター構成を含むブート ファイル
- Active Directory (ADSI) (ドメイン コントローラーの役割を果たしているシステム上)
- ファイル レプリケーション サービス (FRS) によってレプリケートされるシステム ボリューム フォルダー (SYSVOL) (ドメイン コントローラーの役割を果たしているシステム上)
- 証明書サーバー (証明機関を提供するシステム上)
- クラスター データベース (Windows クラスターのノードであるシステム上)
- レジストリ サービス
- COM+ クラス登録データベース
システム状態は、任意の順序でバックアップできます。
ただし、システム状態の復元では、まずブート ファイルを置き換え、プロセスの最終ステップとしてレジストリのシステム セクション (ハイブ) をコミットする必要があるため、復元は次の順序で実行される可能性があります。
- ブートファイルを復元します。
- COM+ クラス登録データベース
- SYSVOL、証明書サーバー、クラスター データベースを復元します (必要な場合)。
- Active Directory を復元します (必要な場合)。
- レジストリを復元します。
証明機関などの一部のシステム サービスには、従来の VSS ライターがあり、VSS のバックアップと復元のアルゴリズムに従って処理されます。 レジストリなどの他のサービスでは、カスタムのバックアップまたは復元操作が必要です。詳細については、カスタム バックアップと復元に関するページを参照してください。
ブート ファイルとシステム ファイルの VSS バックアップと復元
ブート ファイルとシステム ファイルは、単一のエンティティとしてのみバックアップおよび復元する必要があります。
リクエスターは、これらのファイルのシャドウ コピーされたバージョンを安全に使用できますが、システム ボリュームとブート デバイスがシャドウ コピーされていることを確認する必要があります。
システム ファイルおよびブート ファイルには、以下が含まれます。
- コア ブート ファイル:
- NtLdr.exe
Boot.ini
NtDetect.com
NtBootDD.sys (存在する場合) - WFP ファイルをバックアップする前に、WFP サービス カタログ ファイルをバックアップする必要があります。このファイルは、次の場所にあります。
- %SystemRoot%\System32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
- システム ファイル保護によって保護され、SfcGetNextProtectedFile で列挙されるすべてのファイル (「WFP で保護されたファイルの VSS 復元操作」を参照)
- パフォーマンス カウンター構成ファイル:
- %SystemRoot%\System32\Perf?00?.dat
%SystemRoot%\System32\Perf?00?.bak - インターネット インフォメーション サーバー (IIS) メタベース ファイルが存在する場合、このファイルは、Microsoft Exchange やその他のネットワーク アプリケーションで使用される状態を格納しているため、バックアップおよび復元操作に含める必要があります。 このファイルは以下の場所にあります:
- %SystemRoot%\System32\InetSrv\Metabase.bin
- IIS メタベース ファイルをバックアップする場合は、特定の暗号化されたエントリをアプリケーションで読み取るためのキーをシステム状態の一部として復元する必要があります。 これらのファイルは、以下の場所にあります:
- %SystemRoot%\System32\Microsoft\Protect\*
%AllUsersProfile%\Microsoft\Crypto\RSA\MachineKeys\* - ブート ファイルとシステム ファイルをバックアップする際には、次の手順による DOS ブート デバイスの特定が必要になる場合があります。
- HKEY_LOCAL_MACHINE\System\Setup\SystemPartition 以下でシステム パーティションを見つけます。
- システム ルート環境変数 (%SystemRoot%) をマウント マネージャーに渡して、NT デバイス名を取得します。
WFP で保護されたファイルの VSS 復元操作
WFP サービスは、システム ファイルが誤って置換されたり部分的に上書きされる状況を防止するために設計されています。 このため、WFP データを復元するには、特別な手順を実行する必要があります。
つまり、WFP ライターは、ライター メタデータ ドキュメントを定義するときに、復元メソッド VSS_RME_RESTORE_AT_REBOOT を指定する必要があります。 リクエスターは、WFP ライターでこの復元メソッドが指定されていないと判断すると、ライター エラーを示します。
システム ファイルを置き換えるには、リクエスターは、Win32 関数 MoveFileEx と MOVEFILE_DELAY_UNTIL_REBOOT パラメーターを使用して、復元メソッド VSS_RME_RESTORE_AT_REBOOT を実装する必要があります。 復元されたファイルは、システムが再起動するまで実際のシステム ファイル ディレクトリにコピーされません。 保護されたシステム ファイルへの上書きが発生するは、以下の REG_WORD レジストリ エントリの値が 1 に設定されている場合のみです。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\AllowProtectedRenames = 1
保護されたファイルを MoveFileEx で置き換える場合は、この値をブート前に設定し、再起動後に削除する必要があります。
dllcache システム ディレクトリも、ブート ボリュームのバックアップと復元を使用してバックアップまたは復元する必要があります。このディレクトリは、REG_EXPAND_SZ レジストリ エントリを調べることで特定できます。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\SfcDllCache
-
データの種類
- REG\_EXPAND\_SZ
dllcache システム ディレクトリの内容は、コマンド プロンプトからシステム ファイル チェッカー (SFC) を使用して再構築できます。
- /SCANONCE オプションを指定すると、保護されたすべてのファイルが、次回のシステム起動時にスキャンされます。
- /SCANNOW オプションを指定すると、保護されているすべてのファイルが、直ちにスキャンされます。
保護されたすべてのファイルがスキャンされ、有効でないバージョンはディレクトリと dllcache の場所の両方で置き換えられます。
WFP の一部であっても、WFP ファイルと共に復元できないファイルが 4 つあります:
- Ctl3dv2.dll、DtcSetup.exe、NtDll.dll、Smss.exe
これらのファイルは WFP ファイルの復元プロセスに役立つため、循環依存関係が存在します。 現時点では、Windows を再インストールする以外に、これらのファイルを復元する方法はありません。