Поделиться через


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

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

  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.

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