Резервное копирование служб сертификатов

Ниже приведен сценарий, показывающий, как использовать функции резервного копирования служб сертификатов для резервного копирования базы данных служб сертификатов и связанных с ней файлов.

  1. Загрузите библиотеку Certadm.dll в память (путем вызова LoadLibrary).
  2. Получите адрес каждой из необходимых функций в Certadm.dll (с помощью GetProcAddress). Используйте эти адреса при вызове функций на оставшихся шагах.
  3. Вызовите CertSrvIsServerOnline , чтобы определить, подключены ли службы сертификатов к сети. Для успешного выполнения операций резервного копирования службы сертификатов должны быть подключены к сети.
  4. Вызовите CertSrvBackupPrepare , чтобы начать сеанс резервного копирования. Результирующий дескриптор контекста резервного копирования служб сертификатов будет использоваться многими другими функциями резервного копирования.
  5. Вызовите CertSrvRestoreGetDatabaseLocations , чтобы определить схему восстановления. Схема восстановления содержит пути, используемые при восстановлении резервной копии. Сохраните сведения, полученные CertSrvRestoreGetDatabaseLocations , в расположении конкретного приложения.
  6. Вызовите CertSrvBackupGetDatabaseNames , чтобы определить имена файлов базы данных для резервного копирования. Для каждого из этих файлов выполните шаги с 7 по 9.
  7. Вызовите CertSrvBackupOpenFile , чтобы открыть файл для резервной копии.
  8. Вызовите CertSrvBackupRead , чтобы считывать часть байтов из файла, а затем вызовите подпрограмму конкретного приложения для хранения байтов на резервном носителе. Повторяйте этот шаг, пока не будет создана резервная копия всех байтов в файле.
  9. Вызовите CertSrvBackupClose , чтобы закрыть файл.
  10. Вызовите CertSrvBackupGetBackupLogs , чтобы определить имена файлов журнала для резервного копирования. Для каждого из этих файлов выполните шаги с 7 по 9.
  11. Вызовите CertSrvBackupTruncateLogs , чтобы усечь файлы журнала, резервные копии которых были созданы на шагах 6 и 10. Этот шаг является необязательным; однако вызовите CertSrvBackupTruncateLogs , только если были созданы резервные копии всех файлов, возвращенных CertSrvBackupGetDatabaseNames и CertSrvBackupGetBackupLogs (в противном случае операция восстановления завершится ошибкой). Дополнительные сведения см. на странице справочника по CertSrvBackupTruncateLogs .
  12. Вызовите CertSrvBackupGetDynamicFileList , чтобы определить имена файлов, не относящихся к базе данных для резервного копирования. Эти файлы идентифицируются только функцией и должны создаваться с помощью некоторых других средств.
  13. Создайте резервную копию динамических файлов, определенных на шаге 12, с помощью процедур, отдельных от Certadm.dll.
  14. Вызовите CertSrvBackupEnd , чтобы завершить сеанс резервного копирования.
  15. При необходимости вызовите CertSrvBackupFree , чтобы освободить буферы, выделенные определенными функциями резервного копирования служб сертификатов. Вызовы CertSrvBackupGetBackupLogs, CertSrvBackupGetDatabaseNames и CertSrvBackupGetDynamicFileList выделяют буферы, которые можно освободить с помощью вызова CertSrvBackupFree.
  16. Освободите Certadm.dll ресурсов, вызвав FreeLibrary.

Сведения о привилегиях, необходимых для резервного копирования базы данных служб сертификатов и связанных файлов, см. в разделе Настройка привилегий резервного копирования и восстановления.