Log des utilisateurs
Pourquoi ?
Bien sur, les évennements de connexion et deconnexion des utilisateurs sont dans les journaux d'évennements des contrôleurs de domaine. Mais la recherche n'est pas toujours simple.
Ici, un fichier par ordinateur et par utilisateur. On peut donc rapidement savoir ce que fait un utilisateur ou bien qui est passé sur un micro.
Un fichier log général contient toutes les informations.
Il est important que le fichier qui contient toutes les informations soit rapidement fermé pour limiter les pertes de données dues aux connexions simultanées.
Le but final de ces logs est de faire des stats sur l'utilisation réelle des micros par salle (importation dans une base de donnée et traitement)
Principe :
On ne peut plus simple. un ajout dans le logon script pour les trois fichiers et un fichier à la deconnexion (uniquement sur station 2000 et xp car dans une gpo
log.vbs
Option Explicit
Dim sUnc, objFSO, objF
Dim sOrdi, sUtilisateur,oNet
Set objFSO = CreateObject("Scripting.FileSystemObject")
Const UncLog="\\srv-sus-imp\log$\"
Set oNet = CreateObject("WScript.Network")
sOrdi = oNet.ComputerName
sUtilisateur = oNet.UserName
Const ForReading = 1, ForWriting = 2, ForAppending = 8
'--------------------------------------------------------------------
' Enregistrement des logs de connexion
'--------------------------------------------------------------------
' nom_ordi.log avec date;login;connexion
sUnc=UncLog&"PC\"&sOrdi&".log"
If objFSO.FileExists(sUnc) Then
Set objF=objFSO.openTextFile(sUnc,ForAppending)
Else
Set objF = objFSO.CreateTextFile(sUnc)
End If
objF.WriteLine(Now & ";" & sUtilisateur&";connexion")
objF.Close
' login.log avec date;login;
sUnc=UncLog&"Utilisateurs\"&sUtilisateur&".log"
If objFSO.FileExists(sUnc) Then
Set objF=objFSO.openTextFile(sUnc,ForAppending)
Else
Set objF = objFSO.CreateTextFile(sUnc)
End If
objF.WriteLine(Now & ";" & sOrdi &";connexion")
objF.Close
sUnc=UncLog&"Pc.log"
If objFSO.FileExists(sUnc) Then
Set objF=objFSO.openTextFile(sUnc,ForAppending)
Else
Set objF = objFSO.CreateTextFile(sUnc)
End If
objF.WriteLine(Now & ";" & sOrdi&";connexion;"&sUtilisateur)
objF.Close
fichier logout.vbs
Option Explicit
On error resume next
Dim oFichier, sUnc, objF
Dim sOrdi, sUtilisateur,oNet
Set oFichier = CreateObject("Scripting.FileSystemObject")
Const UncLog="\\srv-sus-imp\log$\"
Set oNet = CreateObject("WScript.Network")
sUtilisateur = oNet.UserName
sOrdi = oNet.ComputerName
Const ForReading = 1, ForWriting = 2, ForAppending = 8
' deconnexion PC
sUnc=UncLog & "PC\"&sOrdi&".log"
If oFichier.FileExists(sUnc) Then
Set objF=oFichier.openTextFile(sUnc,ForAppending)
Else
Set objF = oFichier.CreateTextFile(sUnc)
End If
objF.WriteLine(Now & ";" & sUtilisateur& ";deconnexion")
objF.Close
' Deconnexion Utilisateur
sUnc=UncLog & "Utilisateurs\"&sUtilisateur&".log"
If oFichier.FileExists(sUnc) Then
Set objF=oFichier.openTextFile(sUnc,ForAppending)
Else
Set objF = oFichier.CreateTextFile(sUnc)
End If
objF.WriteLine(Now & ";" & sOrdi& ";deconnexion")
objF.Close
'deconnexion PC.log
sUnc=UncLog & "Pc.log"
If oFichier.FileExists(sUnc) Then
Set objF=oFichier.openTextFile(sUnc,ForAppending)
Else
Set objF = oFichier.CreateTextFile(sUnc)
End If
objF.WriteLine(Now & ";" & sOrdi & ";deconnexion" & ";" & sUtilisateur)
objF.Close