証明書サービスのバックアップ
Certificate Services バックアップ機能を使用して Certificate Services データベースとその関連ファイルをバックアップする方法を示すシナリオを次に示します。
- Certadm.dll ライブラリをメモリに読み込みます ( LoadLibrary を呼び出します)。
- Certadm.dllで必要な各関数のアドレスを取得します ( GetProcAddress を使用)。 これらのアドレスは、残りの手順で関数を呼び出すときに使用します。
- 証明書サービスがオンラインかどうかを判断するには、 CertSrvIsServerOnline を呼び出します。 バックアップ操作を成功させるには、証明書サービスがオンラインである必要があります。
- バックアップ セッションを開始するには、 CertSrvBackupPrepare を呼び出します。 結果として得られる Certificate Services バックアップ コンテキスト ハンドルは、他の多くのバックアップ機能で使用されます。
- 復元マップを決定するには、 CertSrvRestoreGetDatabaseLocations を呼び出します。 復元マップには、バックアップの復元時に使用するパスが含まれています。 CertSrvRestoreGetDatabaseLocations によって取得された情報をアプリケーション固有の場所に保存します。
- CertSrvBackupGetDatabaseNames を呼び出して、バックアップするデータベース ファイルの名前を決定します。 これらのファイルごとに、手順 7 から 9 を実行します。
- CertSrvBackupOpenFile を呼び出して、バックアップ用のファイルを開きます。
- CertSrvBackupRead を呼び出してファイルからバイトの一部を読み取り、アプリケーション固有のルーチンを呼び出してバックアップ メディアにバイトを格納します。 ファイル内のすべてのバイトがバックアップされるまで、この手順を繰り返します。
- ファイルを閉じるには 、CertSrvBackupClose を呼び出します。
- バックアップするログ ファイルの名前を確認するには、 CertSrvBackupGetBackupLogs を呼び出します。 これらのファイルごとに、手順 7 から 9 を実行します。
- 手順 6 と 10 でバックアップされたログ ファイルを切り捨てるには、 CertSrvBackupTruncateLogs を呼び出します。 この手順は省略可能です。ただし、 CertSrvBackupTruncateLogs を呼び出すのは、 CertSrvBackupGetDatabaseNames および CertSrvBackupGetBackupLogs によって返されたすべてのファイルがバックアップされている場合 (それ以外の場合、復元操作は失敗します)。 詳細については、 CertSrvBackupTruncateLogs リファレンス ページを参照してください。
- バックアップするデータベース以外のファイルの名前を確認するには、 CertSrvBackupGetDynamicFileList を呼び出します。 これらのファイルは 関数によってのみ識別され、他の方法でバックアップする必要があります。
- Certadm.dllとは別のルーチンを使用して、手順 12 で識別された動的ファイルをバックアップします。
- バックアップ セッションを終了するには、 CertSrvBackupEnd を呼び出します。
- 必要に応じて CertSrvBackupFree を呼び出して、特定の Certificate Services バックアップ関数によって割り当てられたバッファーを解放します。 CertSrvBackupGetBackupLogs、CertSrvBackupGetDatabaseNames、および CertSrvBackupGetDynamicFileList を呼び出すと、CertSrvBackupFree の呼び出しによって解放できるバッファーが割り当てられます。
- FreeLibrary を呼び出して、Certadm.dllリソースを解放します。
Certificate Services データベースと関連ファイルのバックアップに必要な特権については、「 バックアップと復元の特権の設定」を参照してください。