cs_FPatrick
Messages postés122Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention 8 août 2014
-
12 déc. 2007 à 08:35
cs_FPatrick
Messages postés122Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention 8 août 2014
-
13 déc. 2007 à 12:01
Bonjour,
J'ai fait une application qui en tourne en tant que service avec l'ocx ntsvc.
Est-il possible de savoir à partir d'un service si :
* un utilisateur est connecté ou pas.
* un utilisateur ferme une session.
* un utilisateur ouvre une session.
* connaitre le compte qui a ouvert une session.
Sachant que l'application tourne sur le compte système, je ne vois pas comment récupérer cette information.
Merci d'avance pour tous les commentaires et toutes les réponses données.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 13 déc. 2007 à 11:53
salut....
avec WMI je liste mes types de comptes :
' [WMI Win32 Helper -
Win32_SystemAccount]
On Local Error Resume Next
Dim sComputerName as String, WMI_Obj as Object, WMI_ObjProps as Object, ObjClsItem as Object
sComputerName = Environ$("COMPUTERNAME")
Set WMI_Obj = GetObject("winmgmts:\" & sComputerName & "\root\cimv2")
Set WMI_ObjProps = WMI_Obj.ExecQuery("SELECT * FROM Win32_SystemAccount", , 48)
Set ObjClsItem = Nothing
Set WMI_ObjProps = Nothing
Set WMI_Obj = Nothing
c'est bien le nom de mon PC (pas mon compte) qui apparaît dans les groupes TACHE, SERVICE et SYSTEM
ensuite je liste mes services avec leurs "auteurs" on va dire :
' [WMI Win32 Helper -
Win32_SystemServices]
On Local Error Resume Next
Dim sComputerName as String, WMI_Obj as Object, WMI_ObjProps as Object, ObjClsItem as Object
sComputerName = Environ$("COMPUTERNAME")
Set WMI_Obj = GetObject("winmgmts:\" & sComputerName & "\root\cimv2")
Set WMI_ObjProps = WMI_Obj.ExecQuery("SELECT * FROM Win32_SystemServices", , 48)
For Each ObjClsItem in WMI_ObjProps
Debug.Print "GroupComponent :
" & ObjClsItem.GroupComponent
Debug.Print "PartComponent :
" & ObjClsItem.PartComponent
Next ObjClsItem
Set ObjClsItem = Nothing
Set WMI_ObjProps = Nothing
Set WMI_Obj = Nothing
le nom correspond (PC)
enfin je vérifie tous mes services :
' [WMI Win32 Helper - Win32_Service]
On Local Error Resume Next
Dim sComputerName as String, WMI_Obj as Object, WMI_ObjProps as Object, ObjClsItem as Object
sComputerName = Environ$("COMPUTERNAME")
Set WMI_Obj = GetObject("winmgmts:\" & sComputerName & "\root\cimv2")
Set WMI_ObjProps = WMI_Obj.ExecQuery("SELECT * FROM Win32_Service", , 48)
cs_FPatrick
Messages postés122Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention 8 août 20141 13 déc. 2007 à 08:06
Le compte système est celui utilisé pour lancer la plupart des services dont le planificateur des taches.
Si tu utilises les taches planifiés, tu spécifies un compte spécifique pour l'exécution de ta commande, mais si tu utilises la commande AT, c'est le compte SYSTEM qui est prise en compte.
Tu peux le voire dans le gestionnaire des taches et dans les propriétés du service des taches planifiées.
En ce qui concerne l'interrogation par le WMI, j'ai commencé à chercher mais cela me donne que les informations de la session active, donc le compte système.