class NsHardwareProfile

La classe NsHardwareProfile décrit un profil matériel utilisé par un utilisateur donné. A un profil matériel est associé l'ensemble des disques clients non-amovibles via une liste d'objets de type NsHardwareVolume, permettant le monitoring de l'occupation et de la santé des volumes exploités depuis la console d'administration du logiciel.

Les profils sont automatiquement créés par le "Service d'exécution en arrière-plan" de l'agent client. Vous ne pouvez pas les modifier via cette interface de programmation.

En théorie, un seul profil matériel est associé par objet NsUser, sauf si l'agent a été installé sous plusieurs postes différents en exploitant le même identifiant de connexion.

Les informations sur les profils matériels et les disques clients sont collectés uniquement si l'option adéquate est activée sur le serveur de sauvegarde.

ID : __int64 readonly

L'identificateur unique du profil matériel.

CreationDate : VARIANT readonly

La date d'enregistrement du profil matériel.

DeviceName : BSTR readonly

Le nom du poste.

VARIANT_BOOL LoadFromID(NsConnection Connection, __int64 ProfileID)

Charge en mémoire le profil matériel d'identificateur ProfileID.

VARIANT_BOOL Delete(NsConnection Connection)

Supprime le profil matériel représenté par l'objet.

NsHardwareVolumeCollection Volumes(NsConnection Connection)

Retourne la liste des volumes de stockage attachés au profil matériel.

Suppression des profils matériels non utilisés

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

if connection.ConnectToLocalServer then
  set server = CreateObject("NsAPI.NsServer")

  strResult = ""
  FreeSpaceLimit = 1 * 1024 * 1024 * 1024 ' Limite d'espace disque critique définie à 1 Go
  volumesCount = 0

  if server.Load(connection) then ' Chargement des infos serveur
    set groups = server.UserGroups(connection) ' Chargement de tous les groupes utilisateur
    
    for each group in groups ' Pour chaque groupe...
      set users = group.users(connection) ' Chargement de tous les utilisateurs membres
      
      for each user in users ' Pour chaque utilisateurs...
        set hwProfiles = user.Hardware(connection) ' Chargement de la liste des profils matériels associés
        
        if hwProfiles.Count > 1 then
          ' L'utilisateur possède plus d'un profil matériel référencé. Cela signifie
          ' probablement qu'il a changé de poste au fil de l'exploitation du logiciel
          ' de sauvegarde. On va conserver que le plus récent et supprimer les autres.
          MsgBox "L'utilisateur " & user.Description & " possède plus d'un profil matériel référencé !"
          
          ' On suppose que le premier profil est le plus récent
          set newest = hwProfiles(0)
          
          ' On vérifie...
          for each hwProfile in hwProfiles
            if hwProfile.CreationDate > newest.CreationDate then ' Profil actuel plus récent ?
              newest = hwProfile ' On met à jour
            end if
          next
          
          for each hwProfile in hwProfiles ' On supprime tous les profils à l'exception du plus récent.
            if sysutils.CompareInt64(hwProfile.ID, newest.ID) <> 0 then
              if hwProfile.Delete(Connection) then
                MsgBox "Un ancien profil matériel de " & user.Description & ", datant du " & sysutils.UTCToLocal(hwProfile.CreationDate) & ", a été supprimé."
              else
                MsgBox "Impossible de supprimer le plus ancien profil matériel associé à " & user.Description
              end if
            end if
          next
        end if
      next
    next
  else
    MsgBox "Impossible de charger les informations serveur."
  end if

  connection.Disconnect
else
  MsgBox "Connexion au serveur local impossible."
end if