La classe NsBackup représente une sauvegarde.
Pour qu'une sauvegarde puisse être exécutée, elle doit au moins contenir au moins un objet de type NsBackupSource, représentant un fichier ou un dossier à sauvegarder.
Une sauvegarde doit être attribuée au moins à un utilisateur. Les attributions des sauvegardes sont gérées à travers des objets NsBackupAssociation. Lorsque vous créez une sauvegarde, utilisez la fonction CreateAndAttributeToUser qui permet que le serveur gère de lui meme l'attribution de la sauvegarde à l'utilisateur spécifié.
L'identificateur unique de la sauvegarde. Les constantes suivantes peuvent-être utilisées :
La date de création de la sauvegarde sur le serveur, au format UTC.
Le nom de la sauvegarde, telle qu'elle sera affichée dans les interfaces clientes.
La plaforme cliente sur lequelle sera exécuté la sauvegarde.
Indique si la dernière exécution a réussi, c'est à dire que la sauvegarde est arrivée à son terme sans reporter aucune erreur.
Indique si la dernière exécution complète est arrivée à son terme.
Indique si la dernière sauvegarde continue est arrivée à son terme, si la sauvegarde continue est activée.
Indique si la dernière sauvegarde a dépassé les quotas. Les sauvegardes planifiées ayant dépassé les quotas ne sont pas automatiquement relancées.
Le mode de comparaison à utiliser pour détecter qu'un fichier a été modifié depuis la dernière sauvegarde.
Les options générales de la sauvegarde. Les valeurs suivantes peuvent-être combinées :
Les options de reporting de la sauvegarde. Les valeurs suivantes peuvent-être combinées :
Les options de stockage de la sauvegarde. Les valeurs suivantes peuvent-être utilisées:
Le niveau Delta pour la sauvegarde (désactivé ou transfert delta).
Une valeur booléenne indiquant si la sauvegarde continue est activée ou non pour la sauvegarde.
Le délai d'inactivité en secondes avant la création du cliché VSS, si les clichés de données sont activés. Le logiciel attend que les éléments à sauvegarder ne soient plus modifiés pendant cette courte période pour assurer la consistence des clichés contenant des formats de fichiers ne possédant pas de providers VSS adéquats.
Retourne un indicateur booléen indiquant si la sauvegarde est verrouillée ou non. Les sauvegardes verrouillées ne peuvent pas être exécutées, afin que les données sauvegardées ne puissent être écrasées par mégarde.
Le statut de distribution de la sauvegarde, si la sauvegarde a été créée depuis le serveur de sauvegarde.
Le nombre maximal de versions à conserver pour un fichier.
Le nombre maximal de jours de conservation pour les anciennes versions d'un fichier.
Le nombre maximal de jours de conservation pour les fichiers marqués comme supprimés par l'agent client.
La date de dernière sauvegarde, au format UTC.
La date de dernière vérification de la sauvegarde, au format UTC.
Les options de planification. Les paramètres de planification peuvent aussi être définis par la classe NsBackupScheduling.
Le mode de sauvegarde.
Le nombre de minutes minimum entre deux synchronisations avec le serveur si la sauvegarde continue est activée.
L'identificateur de révision de la sauvegarde, incrémenté à chaque exécution.
L'identificateur du compte de stockage hébergeant la sauvegarde.
Si la sauvegarde est issue d'un modèle de sauvegarde, l'identificateur du modèle.
Indique si la sauvegarde est un modèle de sauvegarde ou une sauvegarde classique.
Charge en mémoire la sauvegarde d'identificateur BackupID
Créée ou met à jour la sauvegarde décrite par l'objet.
Retourne les commentaires associés à l'objet.
Définit les commentaires associés à l'objet.
Renvoit les attributs personnalisés de l'objet.
Verrouille la sauvegarde.
Dévérouille la sauvegarde.
Compacte la sauvegarde suivant le mode défini par Mode.
Supprime les fichiers en attente de reprise pour la sauvegarde représentée par l'objet.
Créée et attribue la sauvegarde représentée par l'objet à l'utilisateur UserID. Cette fonction doit être utilisée pour toute création d'une nouvelle sauvegarde.
Supprime la sauvegarde représentée par l'objet.
Supprime les informations sur la sauvegarde dans la base de données en conservant les données sauvegardées. Cette opération n'est accessible qu'aux administrateurs du service de sauvegarde.
Renvoit dans HasCompressionSet si des éléments compressés se trouvent actuellement stockés dans la sauvegarde.
Renvoit dans HasEncryptionSet si des éléments chiffrés se trouvent actuellement stockés dans la sauvegarde.
Si Enable vaut true, la compression est activée pour la sauvegarde. Si Enable vaut false, la compression est désactivée pour la sauvegarde, si elle était précedemment activée.
Si Enable vaut true, le chiffrement est activé pour la sauvegarde. Si Enable vaut false, le chiffrement est désactivé pour la sauvegarde, s'il était précedemment activé.
Retourne des informations sur la prochaine date d'exécution de la sauvegarde, calculée en fonction des paramètres de planification récurrents définis.
Efface les fichiers stockés pour la sauvegarde sur le serveur.
Retourne les fichiers et les dossiers sources à sauvegarder.
Retourne les paramètres de transfert Delta pour la sauvegarde.
Retourne les utilisateurs associées à la sauvegarde.
Poste une demande d'exécution de la sauvegarde représentée par l'objet par l'utilisateur TargetUser. Si RetryIfInterrupted vaut true, la sauvegarde est relancée par l'agent client tant que l'exécution n'arrive pas à son terme. La fonction retourne l'objet NsExecutionRequest correspondant, ou une référence d'objet invalide en cas d'erreur.
Poste une demande d'exécution de la sauvegarde représentée par l'objet par l'utilisateur d'identificateur UserID. Si RetryIfInterrupted vaut true, la sauvegarde est relancée par l'agent client tant que l'exécution n'arrive pas à son terme. La fonction retourne l'objet NsExecutionRequest correspondant, ou une référence d'objet invalide en cas d'erreur.
Renvoit les alertes associées à l'objet. Si OnlyRaised vaut true, seul les alertes déclenchées sont renvoyées.
Retourne les dernières opérations effectuées sur la sauvegarde du point de vue de la base de données.
Retourne les informations d'exécution sur les dernières opérations effectuées sur la sauvegarde. Si le paramètre Limit possède une valeur supérieure à 0, seul les Limit dernières opérations sont retournées.
Retourne la liste des fichiers en attente de transfert pour la sauvegarde.
Poste une demande de vérification manuelle pour la sauvegarde, suivant le mode de vérification désigné par CheckMode. Renvoit l'objet NsBackupVerification si l'opération réussit, une référence d'objet invalide en cas d'erreur.
Retourne la liste des vérifications planifiées, en cours ou terminées pour la sauvegarde.
Retourne un objet permettant de rechercher dans la sauvegarde représentée par l'objet.
Retourne la liste des opérations ayant entraîné l'accès aux données dans la sauvegardées.
Retourne les statistiques d'occupation de la sauvegarde.
Set connection = CreateObject("NsAPI.NsConnection") Set sysutils = CreateObject("NsAPI.NsScriptUtils") const nsPlatformWindowsNT = 1 const nsCompareFileDates = 1 const nsBackupIsIncremental = 2 const nsSchedulingCustom = 4 const THBKPOPT_BACKUPHIDDENOBJECTS = 8 const THBKPOPT_BACKUPSYSOBJECTS = 32 const THSTROPT_VOLUME_SNAPSHOTS = 128 const THBKPOPT_NOCLEARARCHIVEBIT = 1024 ' Renvoit l'ID d'un utilisateur à partir de sa description / nom complet Function FindUserByName(groups, connection, name) FindUserByName = -1 for each group in groups set users = group.Users(connection) for each user in users if StrComp(user.description, name, vbTextCompare) = 0 then FindUserByName = user.ID Exit Function end if next next End Function if connection.ConnectToLocalServer then set server = CreateObject("NsAPI.NsServer") if server.Load(connection) then ' Chargement des infos serveur ' On demande un nom d'utilisateur auquel attribuer la nouvelle sauvegarde. userName = InputBox("Saisissez le nom d'un utilisateur sur le serveur (ex : Jacques Labarre) : ", "Test de l'API UB", "") if userName <> "" then ' Transformer le nom de l'utilisateur en son identifiant numérique unique userID = FindUserByName(server.UserGroups(connection), connection, userName) ' Est-ce qu'on a bien trouvé un utilisateur valide ? if sysutils.CompareInt64(userID, -1) = 0 then MsgBox "Erreur : l'utilisateur """ & userName & """ n'a pu être trouvé sur le serveur." else set newBackup = CreateObject("NsAPI.NsBackup") newBackup.ID = -1 ' Nécessaire pour créer la sauvegarde newBackup.Name = "Test de l'API UB" ' Le nom de la sauvegarde newBackup.Platform = nsPlatformWindowsNT ' La sauvegarde sera exécutée sous Windows newBackup.CompareMode = nsCompareFileDates ' Utiliser les dates de fichiers newBackup.BackupOptions = THBKPOPT_BACKUPHIDDENOBJECTS or THBKPOPT_BACKUPSYSOBJECTS or THBKPOPT_NOCLEARARCHIVEBIT ' On sauvegarde les fichiers cachés, système, et on ne réinitialise pas le bit d'archive newBackup.ReportOptions = 0 ' Pas d'options de reporting particulières newBackup.StorageOptions = THSTROPT_VOLUME_SNAPSHOTS ' Utiliser VSS newBackup.VSSWriteInactivityPeriod = 3 ' Période d'inactivité de 3 secondes newBackup.BackupMode = nsBackupIsIncremental ' Conserver l'historique des modifications newBackup.SchedulingOptions = nsSchedulingCustom ' On va planifier cette sauvegarde (voir plus bas) newBackup.KeepVersionsCount = 0 ' On n'utilise pas de limite par nombre de versions newBackup.KeepVersionsDuration = 7 ' On garde les anciennes versions 7 jours max newBackup.KeepDeletedFilesDuration = 10 ' On garde les fichiers supprimés 10 jours max ' Créer la sauvegarde et l'attribuer à l'utilisateur courant. if newBackup.CreateAndAttributeToUser(connection, userID) then ' On active le chiffrement... if not newBackup.EnableEncryption(connection, true) then MsgBox "Impossible d'activer le chiffrement." end if ' On active la compression... if not newBackup.EnableCompression(connection, true) then MsgBox "Impossible d'activer la compression." end if ' On planifie la sauvegarde tous les jours à 20h set scheduling = CreateObject("NsAPI.NsBackupScheduling") scheduling.SetRecurringScheduling 20, 0 if not scheduling.Save(connection, newBackup.ID) then MsgBox "Impossible de définir les paramètres de planification." end if ' On ajoute un dossier à sauvegarder ! set newFolder = CreateObject("NsAPI.NsBackupSource") ' On sauvegarde le dossier "c:\fp32" newFolder.InitializeWithDirectory "C:\fp32", true newFolder.BackupID = newBackup.ID ' Créer la source de backup if newFolder.update(connection) then ' On exécute la sauvegarde ! set executionRequest = newBackup.CreateExecutionRequestForUserByID(connection, userID, true) if executionRequest is nothing then MsgBox "Impossible de marquer la sauvegarde comme à exécuter." else MsgBox "La sauvegarde a été créée et marquée à exécuter avec succès." end if else MsgBox "Impossible d'ajouter un dossier à sauvegarder" end if else Msgbox "Impossible de créer et d'attribuer la sauvegarde." end if end if end if else MsgBox "Impossible de charger les informations serveur." end if connection.Disconnect else MsgBox "Connexion au serveur local impossible." end if