Service VB et Utilisateurs

Résolu
cs_FPatrick Messages postés 122 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 8 août 2014 - 12 déc. 2007 à 08:35
cs_FPatrick Messages postés 122 Date d'inscription mercredi 27 novembre 2002 Statut Membre Derniè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.

6 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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)

    For Each ObjClsItem in WMI_ObjProps
        Debug.Print "Caption : " & ObjClsItem.Caption
        Debug.Print "Description :
" & ObjClsItem.Description
        Debug.Print "Domain : " & ObjClsItem.Domain
        Debug.Print "InstallDate :
" & ObjClsItem.InstallDate
        Debug.Print "LocalAccount :
" & ObjClsItem.LocalAccount
        Debug.Print "Name : " & ObjClsItem.Name
        Debug.Print "SID : " & ObjClsItem.SID
        Debug.Print "SIDType : " & ObjClsItem.SIDType
        Debug.Print "Status : " & ObjClsItem.Status
    Next ObjClsItem

    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)

    For Each ObjClsItem in WMI_ObjProps
        Debug.Print "AcceptPause :
" & ObjClsItem.AcceptPause
        Debug.Print "AcceptStop :
" & ObjClsItem.AcceptStop
        Debug.Print "Caption : " & ObjClsItem.Caption
        Debug.Print "CheckPoint :
" & ObjClsItem.CheckPoint
        Debug.Print "CreationClassName :
" & ObjClsItem.CreationClassName
        Debug.Print "Description :
" & ObjClsItem.Description
        Debug.Print "DesktopInteract :
" & ObjClsItem.DesktopInteract
        Debug.Print "DisplayName :
" & ObjClsItem.DisplayName
        Debug.Print "ErrorControl :
" & ObjClsItem.ErrorControl
        Debug.Print "ExitCode : " & ObjClsItem.ExitCode
        Debug.Print "InstallDate :
" & ObjClsItem.InstallDate
        Debug.Print "Name : " & ObjClsItem.Name
        Debug.Print "PathName : " & ObjClsItem.PathName
        Debug.Print "ProcessId : " & ObjClsItem.ProcessId
        Debug.Print "ServiceSpecificExitCode :
" & ObjClsItem.ServiceSpecificExitCode
        Debug.Print "ServiceType :
" & ObjClsItem.ServiceType
        Debug.Print "Started : " & ObjClsItem.Started
        Debug.Print "StartMode : " & ObjClsItem.StartMode
        Debug.Print "StartName : " & ObjClsItem.StartName
        Debug.Print "State : " & ObjClsItem.State
        Debug.Print "Status : " & ObjClsItem.Status
        Debug.Print "SystemCreationClassName :
" & ObjClsItem.SystemCreationClassName
        Debug.Print "SystemName :
" & ObjClsItem.SystemName
        Debug.Print "TagId : " & ObjClsItem.TagId
        Debug.Print "WaitHint : " & ObjClsItem.WaitHint
    Next ObjClsItem

    Set ObjClsItem = Nothing
    Set WMI_ObjProps = Nothing
    Set WMI_Obj = Nothing

c'est toujours le nom du PC...

bref, çà devrait te servir de piste de départ ;)

pour d'infos sur le WMI ici

++
PCPT  [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
3
swan94 Messages postés 254 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 avril 2010
12 déc. 2007 à 09:18
Salut,

essayes avec le WMI

Swan94
===============Si la réponse vous convient, merci de l'accepter=================
0
cs_FPatrick Messages postés 122 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 8 août 2014 1
12 déc. 2007 à 09:34
Peux-tu m'aiguiller s'il te plait ? merci
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 déc. 2007 à 02:13
salut,
qu'est-ce que tu appelles le "compte système"?
compte sauvegarde de dell ?
administrateur local?
compte avec pouvoir(s)?

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_FPatrick Messages postés 122 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 8 août 2014 1
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.

Merci d'avance pour les recherches effectuées.
0
cs_FPatrick Messages postés 122 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 8 août 2014 1
13 déc. 2007 à 12:01
Un grand merci d'avance pour les détails donnés.

Je vais me débrouiller avec ca maintenant.

En te remerciant, bonne journée.
0
Rejoignez-nous