La classe NsBackupVersion décrit une version d'un fichier à une date donnée, auquel est attaché un flux de données stocké sur le serveur de sauvegarde.
L'identificateur unique de la version du fichier.
La date d'introduction de la version dans le serveur de sauvegarde, au format UTC.
L'identificateur du fichier parent.
Une variable booléenne indicant si la version actuelle est la dernière (IsUpToDate = true), ou si une version plus récente existe dans la sauvegarde (IsUpToDate = false).
Une variable booléenne indiquant si la version du fichier est chiffrée ou non.
Une variable booléenne indiquant si la version du fichier est compressée ou non.
La date de révocation de la version dans le serveur de sauvegarde, au format UTC (lorsque une version plus récente à remplacé la version actuelle, ou que celle-ci a été supprimée par l'agent client car le fichier n'existait plus sur le poste client).
Une variable booléenne indiquant si la version a été ajoutée au sein d'une sauveagarde ne s'étant pas exécuté jusqu'à son terme.
La taille sur le disque client de la version du fichier.
La taille sur le serveur de sauvegarde de la version du fichier. Elle peut différer de la taille d'origine en fonction des options de chiffrement et de compression choisies.
L'identificateur unique du fichier sur le disque, si le système de fichiers le supporte (c'est le cas de NTFS).
Les attributs Windows de la version du fichier.
La date de création attachée au fichier sauvegardé. Elle peut être au format local ou UTC en fonction du système de fichiers source.
La date de dernière modification attachée au fichier sauvegardé. Elle peut être au format local ou UTC en fonction du système de fichiers source.
La date de dernier accès attachée au fichier sauvegardé. Elle peut être au format local ou UTC en fonction du système de fichiers source.
Charge en mémoire la version de fichier spécifiée par l'identificateur VersionID.
Retourne une variable booléenne indiquant si l'intégrité du fichier a pu être testée et que celui-ci est signalé comme intègre par le système de sauvegarde.
Retourne le résultat du test d'intégrité pour la version courante.
Obtient le chemin de stockage de la version du fichier sur le serveur de sauvegarde.
Set connection = CreateObject("NsAPI.NsConnection") Set sysutils = CreateObject("NsAPI.NsScriptUtils") testedFiles = 0 intgOKCount = 0 intgErrCount = 0 rvkCount = 0 ' ' Teste toutes les versions d'un fichier donné Sub TestAllVersions(connection, path, file) ' On récupère la liste des versions set versionsOfFile = file.Versions(connection) ' Pour chaque version... for each version in versionsOfFile ' On incrémente le nombre de fichiers testés testedFiles = testedFiles + 1 ' On teste l'intégrité if not version.CheckIntegrity(connection) then intgErrCount = intgErrCount + 1 ' Doit-on révoquer le fichier ? if MsgBox("Echec du controle d'intégrité pour ''" & path & "''. Souhaitez-vous supprimer le fichier du serveur ?",vbCritical + vbYesNo + vbApplicationModal,"Echec du contrôle d'intégrité") = vbYes Then ' Demander au serveur de le faire. if not file.Revoke(connection) then MsgBox "Impossible de révoquer le fichier #" & sysutils.Int64ToStr(file.ID) else ' On incrémente le nombre de fichiers révoqués rvkCount = rvkCount + 1 end if ' On sort de la fonction car toutes les versions du fichier ont été révoquées exit Sub end if else ' On incrémente le nombre de fichiers marqués comme sains intgOKCount = intgOKCount + 1 end if next End Sub ' Tester le contenu d'un dossier Sub RecursiveTestDir(connection, path, source, currentfolder) ' Examiner chaque version du fichier for each file in currentfolder.files TestAllVersions connection, source.BuildPath(path + file.Name), file next ' Pour chaque sous-dossier, appeler récursivement la fonction ' afin de les analyser chacun leur tour for each folder in currentfolder.subfolders RecursiveTestDir connection, sysutils.IncludeTrailingPathDelimiter(source.ParentPlatform, path + folder.Name), source, folder next End Sub ' Tester le contenu d'une sauvegarde Sub TestBackupContent(connection, backup) Set sources = backup.Sources(connection) ' Explorer chaque source de backup for each source in sources RecursiveTestDir connection, "", source, source.LoadContentWithUI(connection) next End Sub if connection.ConnectToLocalServer then set server = CreateObject("NsAPI.NsServer") if server.Load(connection) then ' Charger les infos serveur set backups = server.AllBackups(connection) ' Récupérer la liste de toutes les sauvegardes ' Demander un nom de sauvegarde backupName = InputBox("Saisissez le nom de la sauvegarde à tester : ", "Test de l'API UB", "") if backupName <> "" then ' Un nom valide a t-il été saisi p = backups.FindByName(backupName) ' Trouver la bonne sauvegarde if p = -1 then MsgBox "Impossible de continuer car la sauvegarde n'a pas pu être trouvée." else ' Tester la sauvegarde TestBackupContent connection, backups(p) ' Afficher un bilan MsgBox testedFiles & " fichiers ont été testés." & vbCrLf & intgOKCount & " fichiers ont été détectés cohérents." & vbCrLf & intgErrCount & " fichiers ont été détectés comme erronés." & vbCrLf & rvkCount & " fichiers ont été révoqués." end if end if else MsgBox "Impossible de charger les informations serveur." end if else MsgBox "Connexion au serveur local impossible." end if