class NsHardwareVolume

La classe NsHardwareVolume décrit un volume client monitoré par le serveur de sauvegarde, dont le statut est régulièrement mis à jour par l'agent client.

Consultez en priorité les champs FreeSpace et HealthStatus pour prévenir des erreurs disques les plus fréquentes.

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 volume.

ProfileID : __int64 readonly

L'identificateur du profil matériel parent.

Name : BSTR readonly

Le nom du volume.

SerialID : long readonly

Le numéro de série du volume.

Letter : BSTR readonly

Le lettre sur laquelle le volume est monté.

IsSysVol : VARIANT_BOOL readonly

Une variable booléenne indiquant si le volume est considéré par Windows comme le volume système.

FileSystemName : BSTR readonly

Le nom du système de fichiers.

FileSystemFlags : long readonly

Les flags du système de fichiers, tels qu'ils sont reportés par Windows.

TotalSize : __int64 readonly

La taille totale, en octets, du volume.

FreeSpace : __int64 readonly

La taille restante, en octets, du volume.

CheckHealth : VARIANT_BOOL readonly

Une variable booléenne indiquant si la santé du volume doit être surveillée par le logiciel en utilisant les attributs S.M.A.R.T. transmis par Windows.

HealthStatus : enum NsHealthStatus readonly

Le statut de santé du volume.

VARIANT_BOOL LoadFromID(NsConnection Connection, __int64 VolumeID)

Charge en mémoire le volume client d'identificateur VolumeID.

Obtention de la liste des volumes possédant un espace libre critique

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
        
        for each hwProfile in hwProfiles ' Pour chaque profil matériel référencé...
           set volumes = hwProfile.Volumes(connection) ' Obtenir la liste des volumes connectés
           
           for each volume in volumes ' Pour chaque volume...
             if sysutils.CompareInt64(volume.FreeSpace, FreeSpaceLimit) < 0 then ' Si l'espace libre est trop faible...
                volumesCount = volumesCount + 1 '... on ajoute le volume dans la liste des volumes problématiques.
                strResult = strResult & user.Description & " [" & hwProfile.DeviceName & "] " & volume.Letter & ":\ => " & sysutils.SizeToStr(volume.FreeSpace) & vbCrLf
             end if
           next
        next
      next
    next
    
    if volumesCount > 0 then
      MsgBox "Certains volumes client ont un faible espace disque restant : " & vbCrLf & strResult
    else
      MsgBox "Tous les volumes client ont assez d'espace disque libre."
    end if
  else
    MsgBox "Impossible de charger les informations serveur."
  end if

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