La classe NsExecPlanMember représente un membre d'un plan d'exécution, pointant sur une sauvegarde, un utilisateur ou un groupe d'utilisateurs. Si le membre ne désigne pas directement une sauvegarde, la liste des sauvegardes à exécuter est déterminée en obtenant la liste complète des sauvegardes attribuées au membre lors du début du plan d'exécution.
L'identificateur unique du membre du plan d'exécution. Les constantes suivantes peuvent-être utilisées :
L'identificateur unique du plan d'exécution parent, de type NsExecPlan.
Le type du membre : sauvegarde, utilisateur, ou groupe d'utilisateurs.
L'identifiant numérique du membre.
Réservé.
Charge en mémoire le plan d'exécution d'identificateur ExecPlanMemberID.
Met à jour le membre représenté par l'objet.
Supprime le membre représentée par l'objet.
Set connection = CreateObject("NsAPI.NsConnection") Set sysutils = CreateObject("NsAPI.NsScriptUtils") const epdExecPlanDayNone = &h00000000 const epdExecPlanDayMonday = &h00000001 const epdExecPlanDayTuesday = &h00000002 const epdExecPlanDayWednesday = &h00000004 const epdExecPlanDayThursday = &h00000008 const epdExecPlanDayFriday = &h00000010 const epdExecPlanDaySaturday = &h00000020 const epdExecPlanDaySunday = &h00000040 const mtBackup = 1 const mtUser = 2 const mtGroup = 3 ' Renvoit une sauvegarde à partir de son nom Function FindBackupByName(backups, connection, name) set FindBackupByName = nothing for each backup in backups if StrComp(backup.Name, name, vbTextCompare) = 0 then set FindBackupByName = backup Exit Function end if next End Function ' Renvoit un groupe d'utilisateurs à partir de son nom Function FindGroupByName(groups, connection, name) set FindGroupByName = nothing for each group in groups if StrComp(group.Description, name, vbTextCompare) = 0 then set FindGroupByName = group Exit Function end if next End Function ' Renvoit un utilisateur à partir de son nom Function FindUserByName(groups, connection, name) set FindUserByName = nothing for each group in groups set users = group.Users(connection) for each user in users if StrComp(user.Description, name, vbTextCompare) = 0 then set FindUserByName = user 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 set groupsList = server.UserGroups(connection) set backupsList = server.AllBackups(connection) execPlanName = InputBox("Saisissez le nom du plan d'exécution à créer:", "Test de l'API UB", "") if execPlanName <> "" then set execPlan = CreateObject("NsAPI.NsExecPlan") execPlan.ID = -1 'Constante nécessaire pour créer le plan execPlan.Name = execPlanName execPlan.StartHour = 20 'Heure de début de plan: 20h execPlan.StopHour = 6 'Heure de fin de plan : 6h du matin execPlan.Days = epdExecPlanDayMonday or epdExecPlanDayTuesday or epdExecPlanDayWednesday or epdExecPlanDayThursday or epdExecPlanDayFriday ' Tous les jours de la semaine execPlan.AllBackups = false ' On va spécifier les membres manuellement execPlan.MaxConcurrentBackups = 3 '3 sauvegardes à la fois execPlan.MaxOperationsToKeep = 10 '10 exécutions à garder execPlan.ReportingMode = 0 'Pas d'e-mails de notification execPlan.Options = 0 'Pas d'options supplémentaires if not execPlan.Update(connection) then 'Création sur le serveur MsgBox "Impossible de créer le plan d'exécution." else set memberToAdd = CreateObject("NsAPI.NsExecPlanMember") do while true objectFound = false ' Demander à saisir le nom de l'objet à ajouter au plan d'exécution objectName = InputBox("Saisissez le nom d'un object à ajouter au plan :", "Test de l'API UB", "") if objectName = "" then Exit Do ' L'utilisateur a annulé la saisie. On sort de la boucle. end if ' D'abord, chercher une sauvegarde portant le nom saisi. set backupObj = FindBackupByName(backupsList, connection, objectName) ' Une sauvegarde correspond ! if not backupObj is nothing then objectFound = true ' L'objet entré est une sauvegarde. memberToAdd.ID = -1 memberToAdd.ExecPlanID = execPlan.ID memberToAdd.MemberType = mtBackup memberToAdd.MemberID = backupObj.ID memberToAdd.Options = 0 if not memberToAdd.Update(connection) then ' Ajout du membre. MsgBox "Impossible d'ajouter la sauvegarde " & backupObj.Name & " au plan d'exécution." else If MsgBox("La sauvegarde " & backupObj.Name & " a été ajoutée avec succès. Souhaitez-vous ajouter d'autres membres ?", vbQuestion + vbYesNo + vbApplicationModal, "Test de l'API UB") = vbNo then Exit Do end if end if end if if not objectFound then ' Ensuite, chercher un utilisateur portant le nom saisi. set userObj = FindUserByName(groupsList, connection, objectName) if not userObj is nothing then objectFound = true ' L'objet entré est un utilisateur. memberToAdd.ID = -1 memberToAdd.ExecPlanID = execPlan.ID memberToAdd.MemberType = mtUser memberToAdd.MemberID = userObj.ID memberToAdd.Options = 0 if not memberToAdd.Update(connection) then ' Ajout du membre. MsgBox "Impossible d'ajouter l'utilisateur " & userObj.Description & " au plan d'exécution." else If MsgBox("L'utilisateur " & userObj.Description & " a été ajouté avec succès. Souhaitez-vous ajouter d'autres membres ?", vbQuestion + vbYesNo + vbApplicationModal, "Test de l'API UB") = vbNo then Exit Do end if end if end if end if if not objectFound then ' Enfin, chercher un utilisateur portant le nom saisi. set groupObj = FindGroupByName(groupsList, connection, objectName) if not groupObj is nothing then objectFound = true ' L'objet entré est un groupe. memberToAdd.ID = -1 memberToAdd.ExecPlanID = execPlan.ID memberToAdd.MemberType = mtGroup memberToAdd.MemberID = groupObj.ID memberToAdd.Options = 0 if not memberToAdd.Update(connection) then ' Ajout du membre. MsgBox "Impossible d'ajouter le groupe " & groupObj.Description & " au plan d'exécution." else If MsgBox("Le groupe " & groupObj.Description & " a été ajouté avec succès. Souhaitez-vous ajouter d'autres membres ?", vbQuestion + vbYesNo + vbApplicationModal, "Test de l'API UB") = vbNo then Exit Do end if end if end if end if ' Si on arrive ici, aucun objet pourtant le nom saisi n'a pu être trouvé. if not objectFound then MsgBox "Aucun utilisateur, groupe d'utilisateurs, ou sauvegarde portant le nom """ & objectName & """ n'a pu être trouvé." end if loop if not execPlan.Update(connection) then ' Mise à jour MsgBox "Impossible de mettre à jour le plan d'exécution." else MsgBox "Le plan d'exécution a été créé, il contient actuellement " & execPlan.members(connection).Count & " membres." 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