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.
L'identificateur unique du volume.
L'identificateur du profil matériel parent.
Le nom du volume.
Le numéro de série du volume.
Le lettre sur laquelle le volume est monté.
Une variable booléenne indiquant si le volume est considéré par Windows comme le volume système.
Le nom du système de fichiers.
Les flags du système de fichiers, tels qu'ils sont reportés par Windows.
La taille totale, en octets, du volume.
La taille restante, en octets, du volume.
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.
Le statut de santé du volume.
Charge en mémoire le volume client d'identificateur VolumeID.
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