備份憑證服務
以下是示範如何使用憑證服務備份函式來備份憑證服務資料庫及其相關聯檔案的案例。
- 將 Certadm.dll 連結庫載入記憶體中(呼叫 LoadLibrary)。
- 將每個必要函式的位址取得到 Certadm.dll(使用 GetProcAddress)。 在其餘步驟中呼叫函式時,請使用這些位址。
- 呼叫 CertSrvIsServerOnline,以判斷憑證服務是否在在線。 憑證服務必須上線,備份作業才能成功。
- 呼叫 CertSrvBackupPrepare 來啟動備份會話。 產生的憑證服務備份上下文控制代碼會被許多其他的備份功能使用。
- 呼叫 CertSrvRestoreGetDatabaseLocations 以判斷還原對應。 還原映射包含在還原備份時要使用的路徑。 將 CertSrvRestoreGetDatabaseLocations 擷取的資訊儲存至應用程式特定位置。
- 呼叫 CertSrvBackupGetDatabaseNames,以判斷要備份的資料庫檔名。 針對每個檔案,執行步驟 7 到 9。
- 呼叫 CertSrvBackupOpenFile 以開啟要備份的檔案。
- 呼叫 CertSrvBackupRead 以從檔案讀取部分位元組,然後呼叫應用程式特定的例程,將位元組儲存在備份媒體上。 重複此步驟,直到備份檔案中的所有位元組為止。
- 呼叫 CertSrvBackupClose 以關閉檔案。
- 呼叫 CertSrvBackupGetBackupLogs,以判斷要備份的記錄檔名稱。 針對每個檔案,執行步驟 7 到 9。
- 呼叫 CertSrvBackupTruncateLogs,以截斷在步驟 6 和 10 中備份的記錄檔案。 此步驟是選擇性的;不過 ,只有在 CertSrvBackupGetDatabaseNames 傳回的所有檔案 且 CertSrvBackupGetBackupLogs 備份時,才 呼叫 CertSrvBackupTruncateLogs (否則,還原作業將會失敗)。 如需詳細資訊,請參閱 CertSrvBackupTruncateLogs 參考頁面。
- 呼叫 CertSrvBackupGetDynamicFileList,以判斷要備份的非資料庫文件名稱。 這些檔案只能由函式識別,而且必須透過一些其他方式進行備份。
- 使用與 Certadm.dll分開的例程,備份步驟 12 中所識別的動態檔案。
- 呼叫 CertSrvBackupEnd 結束備份會話。
- 視需要呼叫 CertSrvBackupFree,以釋放特定憑證服務備份函式所配置的緩衝區。 呼叫 CertSrvBackupGetBackupLogs、CertSrvBackupGetDatabaseNames,以及 CertSrvBackupGetDynamicFileList,將會配置可透過呼叫 CertSrvBackupFree釋放的緩衝區。
- 呼叫 FreeLibrary來釋放 Certadm.dll 資源。
如需備份憑證服務資料庫和相關檔案所需許可權的相關信息,請參閱 設定備份與還原許可權。