Partager via


Sauvegarde des services de certificats

Voici un scénario montrant comment utiliser les fonctions de sauvegarde des services de certificats pour sauvegarder une base de données des services de certificats et ses fichiers associés.

  1. Chargez la bibliothèque Certadm.dll en mémoire (en appelant LoadLibrary).
  2. Récupérez l’adresse de chacune des fonctions nécessaires dans Certadm.dll (au moyen de GetProcAddress). Utilisez ces adresses lors de l’appel des fonctions dans les étapes restantes.
  3. Appelez CertSrvIsServerOnline pour déterminer si les services de certificat sont en ligne. Les services de certificats doivent être en ligne pour que les opérations de sauvegarde réussissent.
  4. Appelez CertSrvBackupPrepare pour démarrer une session de sauvegarde. Le handle de contexte de sauvegarde des services de certificats résultant sera utilisé par de nombreuses autres fonctions de sauvegarde.
  5. Appelez CertSrvRestoreGetDatabaseLocations pour déterminer la carte de restauration. La carte de restauration contient les chemins d’accès à utiliser lors de la restauration de la sauvegarde. Enregistrez les informations récupérées par CertSrvRestoreGetDatabaseLocations dans un emplacement spécifique à l’application.
  6. Appelez CertSrvBackupGetDatabaseNames pour déterminer les noms des fichiers de base de données à sauvegarder. Pour chacun de ces fichiers, exécutez les étapes 7 à 9.
  7. Appelez CertSrvBackupOpenFile pour ouvrir le fichier à des fins de sauvegarde.
  8. Appelez CertSrvBackupRead pour lire une partie des octets du fichier, puis appelez une routine spécifique à l’application pour stocker les octets sur un support de sauvegarde. Répétez cette étape jusqu’à ce que tous les octets du fichier soient sauvegardés.
  9. Appelez CertSrvBackupClose pour fermer le fichier.
  10. Appelez CertSrvBackupGetBackupLogs pour déterminer les noms des fichiers journaux à sauvegarder. Pour chacun de ces fichiers, exécutez les étapes 7 à 9.
  11. Appelez CertSrvBackupTruncateLogs pour tronquer les fichiers journaux sauvegardés aux étapes 6 et 10. Cette étape est facultative ; Toutefois, appelez CertSrvBackupTruncateLogs uniquement si tous les fichiers retournés par CertSrvBackupGetDatabaseNames et CertSrvBackupGetBackupLogs ont été sauvegardés (sinon, l’opération de restauration échoue). Pour plus d’informations, consultez la page de référence CertSrvBackupTruncateLogs .
  12. Appelez CertSrvBackupGetDynamicFileList pour déterminer les noms des fichiers non de base de données à sauvegarder. Ces fichiers sont identifiés uniquement par la fonction et doivent être sauvegardés par d’autres moyens.
  13. Sauvegardez les fichiers dynamiques identifiés à l’étape 12, en utilisant des routines distinctes de Certadm.dll.
  14. Appelez CertSrvBackupEnd pour mettre fin à la session de sauvegarde.
  15. Appelez CertSrvBackupFree si nécessaire pour libérer les mémoires tampons allouées par certaines fonctions de sauvegarde des services de certificats. Les appels à CertSrvBackupGetBackupLogs, CertSrvBackupGetDatabaseNames et CertSrvBackupGetDynamicFileList allouent des mémoires tampons qui peuvent être libérées par un appel à CertSrvBackupFree.
  16. Libérez les ressources Certadm.dll en appelant FreeLibrary.

Pour plus d’informations sur les privilèges requis pour sauvegarder la base de données des services de certificats et les fichiers associés, consultez Définition des privilèges de sauvegarde et de restauration.