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