La classe NsServerSession décrit une session active, c'est à dire un contexte de connexion attribué à un utilisateur durant une durée donnée.
Toute connexion au serveur nécessite l'établissement d'une session possédant un numéro d'identifiant unique. Plusieurs sessions peuvent être ouvertes en parallèle par le même utilisateur. Lorsque le serveur détecte que la connexion a été perdue avec le client, il libère automatiquement les ressources qui lui étaient associées et l'objet NsServerSession est supprimé de la liste des sessions ouvertes.
L'identifiant unique de session.
Une valeur booléenne indiquant si la session a été marquée comme à annuler par l'administrateur du serveur de sauvegarde.
L'identifiant numérique de l'utilisateur (NsUser) ayant ouvert la session.
La date d'ouverture de session.
Marque la session comme à annuler. Les connexions actives utilisant cette session sont immédiatement déconnectées du serveur de sauvegarde.
Set connection = CreateObject("NsAPI.NsConnection")
if connection.ConnectToLocalServer then
set server = CreateObject("NsAPI.NsServer")
if server.Load(connection) then ' Charger les informations serveur
set sessions = server.ActiveSessions(connection) ' Récupère la liste des sessions
MsgBox "Nombre de sessions ouvertes : " & sessions.count ' Affiche le nombre de sessions ouvertes
for each session in sessions
' Pour chaque session, afficher le nom complet de l'utilisateur qui l'a ouvert
set user = CreateObject("NsAPI.NsUser")
if user.LoadFromID(connection, session.UserID) then
MsgBox "Session active ouverte par " & user.Description
end if
next
end if
connection.Disconnect
else
MsgBox "Connexion au serveur local impossible."
end if
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
set sessions = server.ActiveSessions(connection) ' Récupère la liste des sessions
for each session in sessions
if sysutils.CompareInt64(session.ID, connection.sessionID) = 0 then ' On n'annule pas notre session
if not session.Cancel(connection) then ' Annuler la session
MsgBox "Impossible d'annuler la session."
else
MsgBox "Session #" & sysutils.Int64ToStr(session.ID) & " annulée avec succès."
end if
end if
next
end if
connection.Disconnect
else
MsgBox "Connexion au serveur local impossible."
end if