class NsUser

La classe NsUser représente un utilisateur du service de sauvegarde. Il est associé à un et un seul dispositif matériel contenant des données à sauvegarder.

ID : __int64

L'identificateur unique de l'utilisateur. Les constantes suivantes peuvent-être utilisées :

  • THUSER_CREATE = -1 : l'objet n'existe pas et doit être créé.

CreationDate : VARIANT readonly

La date de création de l'utilisateur sur le serveur de sauvegarde, au format UTC.

UserName : BSTR

Le login de l'utilisateur, qui ne doit comporter que des caractères alphanumériques. Il est accolé au domaine du groupe auquel il est membre pour former le nom de connexion de l'utilisateur, tel qu'il est renvoyé par la fonction Login.

Description : BSTR

La description de l'utilisateur.

Platform : enum NsPlatformType

La plateforme cliente utilisée par l'utilisateur.

IsAdmin : VARIANT_BOOL

Une variable booléenne indiquant si l'utilisateur posséde des droits d'administration ou non.

GroupID : __int64

L'identificateur unique du groupe (NsUserGroup) dans lequel est placé l'utilisateur.

DefaultStorageID : __int64

L'identificateur du stockage (NsStorage) qui devra recevoir les nouvelles sauvegardes de l'utilisateur, si le stockage par défaut du groupe d'utilisateurs ne doit pas être utilisé. Les constantes suivantes peuvent-être utilisées :

  • THSTORAGEACCOUNT_INHERIT_FROM_GROUP = -1 : les sauvegardes devront être placées sur le compte de stockage configuré au niveau du groupe d'utilisateurs (par défaut)

GroupDomain : BSTR readonly

Le domain du groupe dans lequel est placé l'utilisateur.

SizeQuotaSoft : __int64

Les quotas en volume de données, exprimés en octets (limite d'avertissement).

SizeQuotaHard : __int64

Les quotas en volume de données, exprimés en octets (limite de blocage).

MaxFilesQuotaSoft : __int64

Les quotas en nombre maximum de fichiers (limite d'avertissement).

MaxFilesQuotaHard : __int64

Les quotas en nombre maximum de fichiers (limite de blocage).

Language : enum NsLanguage readonly

La langue par défaut de l'utilisateur, dans laquelle il recevra les alertes, rapports et informations envoyées par le serveur. Pour modifier la langue, appellez la méthode ChangeLanguage() en lui passant la nouvelle langue à utiliser.

LocalBias : long

Le fuseau horaire du client, transmis par l'agent de sauvegarde.

IPAddress : BSTR

Si le mode de connexion désigné par ConnectionMode est défini à nsUserConnectionModeStaticIP, contient la seule adresse IP du client autorisée à se connecter au serveur. Sinon, retourne la dernière IP utilisée par l'utilisateur pour se connecter.

ConnectionMode : enum NsUserConnectionMode

Le mode de connexion de l'utilisateur (IP fixe ou IP dynamique).

ConnectionOptions : long

Réservé.

NSClientVersion : BSTR readonly

La version de l'agent client installée, au format X.Y.Z.

OSVersion : BSTR readonly

La version du système d'exploitation sur lequel s'exécute l'agent client.

LastConnectionDate : VARIANT readonly

Le jour de la dernière connexion de l'utilisateur (la date est au format UTC).

IsConnected : VARIANT_BOOL readonly

Indique si l'utilisateur est connecté au serveur de sauvegarde au moment du chargement des informations.

IsLicensed : VARIANT_BOOL readonly

Indique si l'utilisateur est couvert par le système de licensing serveur.

CanReceiveServerCommands : VARIANT_BOOL readonly

Indique si l'utilisateur peut recevoir des commandes de type serveur-à-client (la version 4 de l'agent client est requise).

LocalServicesState : enum NsLocalServicesState readonly

Indique l'état des services sur le poste client (la version 7 de l'agent client est requise).

Login : BSTR readonly

Retourne le login de connexion de l'utilisateur (de la forme nom@groupe).

UserKeyLastModificationDate : VARIANT readonly

La date de dernière modification de la clé de chiffrement de l'utilisateur, au format UTC. Si l'information n'est pas connue, un objet null est renvoyé.

UserKeyLastVerificationDate : VARIANT readonly

La date de dernière vérification de la clé de chiffrement de l'utilisateur, au format UTC. Si l'information n'est pas connue, un objet null est renvoyé.

VARIANT_BOOL LoadFromID(NsConnection Connection, __int64 UserID)

Charge en mémoire l'utilisateur UserID.

VARIANT_BOOL LoadFromUserName(NsConnection Connection, BSTR UserName)

Charge en mémoire l'utilisateur de nom (login) UserName.

VARIANT_BOOL Update(NsConnection Connection)

Met à jour l'utilisateur représenté par l'objet.

VARIANT_BOOL Delete(NsConnection Connection)

Supprime l'utilisateur représenté par l'objet. Un utilisateur ne peut être supprimé que si aucune sauvegarde ne lui est attachée.

VARIANT_BOOL ChangeLanguage(NsConnection Connection, NsLanguage Language)

Change la langue de l'utilisateur. Si l'opération réussit, la nouvelle langue utilisateur est reflétée par la propriété Language de l'objet.

VARIANT_BOOL IsUserKeyStored(NsConnection Connection, VARIANT_BOOL IsKeyStored)

Retourne dans IsKeyStored une valeur booléenne indiquant si la clé de chiffrement de l'utilisateur est stockée sur le serveur de sauvegarde.

VARIANT_BOOL IsUserKeyCRCStored(NsConnection Connection, VARIANT_BOOL IsKeyCRCStored)

Retourne dans IsKeyCRCStored une valeur booléenne indiquant si la somme de contrôle de la clé de chiffrement de l'utilisateur est stockée sur le serveur de sauvegarde.

VARIANT_BOOL GetUserKeyCRC(NsConnection Connection, long KeyCRC)

Retourne dans KeyCRC la somme de controle de la clé de chiffrement stockée sur le serveur.

VARIANT_BOOL SetUserKeyFromPassphrase(NsConnection Connection, BSTR Passphrase)

Définit la clé de chiffrement de l'utilisateur et sa somme de contrôle à partir de la passphrase contenue dans Passphrase. Si la mise à jour réussit, le champ UserKeyLastModificationDate est mis à jour avec la date actuelle.

NsKeyVerificationState VerifyUserKeyFromPassphrase(NsConnection Connection, BSTR Passphrase)

Vérifie que la passphrase passée en paramètre est bien la passphrase de l'utilisateur. Si la vérification réussit, le champ UserKeyLastVerificationDate est mis à jour avec la date actuelle.

VARIANT_BOOL GetComments(NsConnection Connection, BSTR Comments)

Retourne les commentaires associés à l'objet.

VARIANT_BOOL SetComments(NsConnection Connection, BSTR Comments)

Définit les commentaires associés à l'objet.

NsCustomAttributes CustomAttributes(NsConnection Connection)

Renvoit les attributs personnalisés de l'objet.

VARIANT GetExcludedItems(NsConnection Connection, BSTR ExcludedItems)

Renvoit la liste des éléments exclus pour toutes les sauvegardes de l'utilisateur.

VARIANT_BOOL SetExcludedItems(NsConnection Connection, BSTR ExcludedItems)

Définit la liste des éléments exclus pour toutes les sauvegardes de l'utilisateur.

void SetPassword(BSTR Password)

Définit le mot de passe de connexion pour l'utilisateur.

NsBackupCollection Backups(NsConnection Connection)

Retourne la liste des sauvegardes attribuées à l'utilisateur.

NsLocalBackupCollection LocalBackups(NsConnection Connection)

Retourne la liste des sauvegardes locales attribuées à l'utilisateur.

NsSharedFileCollection SharedFiles(NsConnection Connection)

Retourne la liste des fichiers partagés par l'utilisateur.

NsExecutionRequestCollection ExecutionRequests(NsConnection Connection)

Retourne la liste des demandes d'exécution associées à l'utilisateur représenté par l'objet.

NsExecutionRequest CreateExecutionRequestForBackup(NsConnection Connection, NsBackup TargetBackup, VARIANT_BOOL RetryIfInterrupted)

Poste une demande d'exécution de la sauvegarde TargetBackup. 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.

NsExecutionRequest CreateExecutionRequestForBackupByID(NsConnection Connection, __int64 TargetBackupID, VARIANT_BOOL RetryIfInterrupted)

Poste une demande d'exécution de la sauvegarde d'identificateur TargetBackupID. 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.

NsServerAlertCollection Alerts(NsConnection Connection, VARIANT_BOOL OnlyRaised)

Renvoit les alertes associées à l'objet. Si OnlyRaised vaut true, seul les alertes déclenchées sont renvoyées.

NsHistoryCollection History(NsConnection Connection, long Limit)

Retourne les Limit derniers événements réalisés sur les sauvegardes de l'utilisateur représenté par l'objet en mémoire.

VARIANT_BOOL GetReportingSettings(NsConnection Connection, NsEMailReportingMode Mode, BSTR EMailAddresses)

Renvoit les informations de reporting de type e-mail pour l'utilisateur. Le mode de reporting est renvoyé dans Mode, et les e-mail de notifications sont renvoyés dans EMailAddresses.

VARIANT_BOOL SetReportingSettings(NsConnection Connection, NsEMailReportingMode Mode, BSTR EMailAddresses)

Définit les informations de reporting de type e-mail pour l'utilisateur. Le mode de reporting est spécifié par Mode, et les e-mail de notifications sont spécifiés par EMailAddresses.

VARIANT_BOOL GetReportingSettings2(NsConnection Connection, BSTR MobilePhoneNumber, NsMobilePhoneNumberCountry MobilePhoneNumberCountry)

Renvoit les informations de reporting de type SMS pour l'utilisateur. Le numéro de téléphone mobile est renvoyé dans MobilePhoneNumber et le pays (nécessaire pour la génération du préfixe d'appel international) est renvoyé dans MobilePhoneNumberCountry.

VARIANT_BOOL SetReportingSettings2(NsConnection Connection, BSTR MobilePhoneNumber, NsMobilePhoneNumberCountry MobilePhoneNumberCountry)

Définit les informations de reporting de type SMS pour l'utilisateur. Le numéro de téléphone mobile est spécifié par MobilePhoneNumber, et le pays (nécessaire pour la génération du préfixe d'appel international) est spécifié par MobilePhoneNumberCountry.

VARIANT_BOOL GetReportingSettings3(NsConnection Connection, NsEMailReportingMode Mode, BSTR EMailAddresses, BSTR MobilePhoneNumber, NsMobilePhoneNumberCountry MobilePhoneNumberCountry)

Renvoit les informations de reporting e-mail et SMS pour l'utilisateur (cf. GetReportingSettings et GetReportingSettings2).

VARIANT_BOOL SetReportingSettings3(NsConnection Connection, NsEMailReportingMode Mode, BSTR EMailAddresses, BSTR MobilePhoneNumber, NsMobilePhoneNumberCountry MobilePhoneNumberCountry)

Définit les informations de reporting e-mail et SMS pour l'utilisateur (cf. GetReportingSettings et GetReportingSettings2).

NsHardwareProfileCollection Hardware(NsConnection Connection)

Renvoit les profils matériels associés à l'utilisateur.

NsDataAccessLogEntryCollection DataAccessLogEntriesAsRequestor(NsConnection Connection)

Retourne la liste des opérations ayant entraîné l'accès aux données dans lequel l'utilisateur est commanditaire des opérations.

NsDataAccessLogEntryCollection DataAccessLogEntriesAsOwner(NsConnection Connection)

Retourne la liste des opérations ayant entraîné l'accès aux données dans lequel l'utilisateur est propriétaire des données.

NsPushRestoreRequestCollection PushRestoreRequests(NsConnection Connection)

Renvoit la liste des opérations Push Restore associées à l'utilisateur.

NsLocalBackupsTargetInformation LocalBackupsTargetInformation(NsConnection Connection)

Retourne les informations de stockage sur le volume de destination des sauvegardes locales.

VARIANT_BOOL CreateBackupFromTemplate(NsConnection Connection, __int64 TemplateBackupID, BSTR NewBackupName, __int64 NewBackupID)

Distribue la sauvegarde désignée par TemplateBackupID à l'utilisateur, en lui attributant le nouveau nom NewBackupName, et retourne dans NewBackupID l'identificateur de la nouvelle tâche. Les droits de sauvegarde, de restauration et de réinitialisation/suppression sont attribués.

VARIANT_BOOL CreateBackupFromTemplate2(NsConnection Connection, __int64 TemplateBackupID, BSTR NewBackupName, VARIANT_BOOL CanBackup, VARIANT_BOOL CanRestore, VARIANT_BOOL CanClearOrRemove, __int64 NewBackupID)

Distribue la sauvegarde désignée par TemplateBackupID à l'utilisateur, en lui attributant le nouveau nom NewBackupName, et retourne dans NewBackupID l'identificateur de la nouvelle tâche. Les droits de sauvegarde, de restauration et de réinitialisation/suppression sont attribués en fonction des valeurs de CanBackup, CanRestore, et CanClearOrRemove.

Création de l'utilisateur jlabarre@litware

Set connection = CreateObject("NsAPI.NsConnection")
Set sysutils = CreateObject("NsAPI.NsScriptUtils")

if connection.ConnectToLocalServer then

  set server = CreateObject("NsAPI.NsServer")

  if server.Load(connection) then ' Charger les informations serveur

    ' On veut créer un utilisateur dans le groupe "litware".
    ' Première étape : obtenir la liste des groupes.
    set groups = server.UserGroups(connection)
    ' Seconde étape : obtenir la position du groupe dans la liste.
    index = groups.FindByDomain("litware")
    
    if index > -1 then
      set parentGroup = groups(index)
      
      set myUser = CreateObject("NsAPI.NsUser")

      const nsPlatformWindowsNT	= 1 ' Le client est un client Windows
      const nsUserConnectionModeDynamicIP = 2 ' Il possède une IP dynamique
      maxBytes = 1 * 1024 * 1024 * 1024 ' Quotas en volume de données : 1Gb
      
      myUser.ID = -1 ' Constante nécessaire pour créer un nouvel utilisateur
      myUser.UserName = "jlabarre" ' Nom de connexion
      myUser.Description = "Jacques Labarre" ' Description
      myUser.Platform = nsPlatformWindowsNT ' Platforme = Windows
      myUser.IsAdmin = false ' L'utilisateur ne pourra PAS administrer le serveur
      myUser.GroupID = parentGroup.ID ' Le groupe parent est Litware
      myUser.ConnectionMode = nsUserConnectionModeDynamicIP ' Connexion avec une IP dynamique
      myUser.SetPassword "secret" ' Affectation d'un mot de passe arbitraire
      ' Quotas en volume de données définis à 1 Gb
      myUser.SizeQuotaSoft = int(0.95 * maxBytes)
      myUser.SizeQuotaHard = maxBytes
      ' Pas de quotas en nombre d'éléments définis
      myUser.MaxFilesQuotaSoft = 0
      myUser.MaxFilesQuotaHard = 0
      
      if myUser.Update(connection) then
        ' Définir les options de reporting
        const nsEMailAlways = 2 ' Envoyer des e-mails à chaque exécution d'une tâche
        if not myUser.SetReportingSettings(connection, nsEMailAlways, "jlabarre@litware.com") then
          MsgBox "Echec de la définition des options de reporting !"
        end if
        MsgBox "L'utilisateur a été créé, son identifiant unique est #" & sysutils.Int64ToStr(myUser.ID) & "." & vbCrLf &  "Nom de connexion : " & myUser.Login
      else
        MsgBox "Echec lors de la création de l'utilisateur" ' Utilisez la console d'admin pour voir le message d'erreur
      end if
    else
      MsgBox "Impossible de trouver le groupe 'litware' pour lui créer un nouvel utilisateur !"
    end if
  else
    MsgBox "Impossible de créer un groupe car les informations serveur n'ont pu être chargées."
  end if
    
  connection.Disconnect
else
  MsgBox "Connexion au serveur local impossible."
end if