Vbs : Vérifier si un utilisateur fait partie d’un groupe

La fonction ci-dessous permet de vérifier si un utilisateur fait partie d’un groupe AD.

La fonction retourne True ou False.

' *****************************************************
'This function checks to see if the passed group name contains the current
' user as a member. Returns True or False
Function IsMember(groupName)
    If IsEmpty(groupListD) then
        Set groupListD = CreateObject("Scripting.Dictionary")
        groupListD.CompareMode = 1
        ADSPath = EnvString("userdomain") & "/" & EnvString("username")
        Set userPath = GetObject("WinNT://" & ADSPath & ",user")
        For Each listGroup in userPath.Groups
            groupListD.Add listGroup.Name, "-"
        Next
    End if
    IsMember = CBool(groupListD.Exists(groupName))
End Function
' *****************************************************
 
' *****************************************************
'This function returns a particular environment variable's value.
' for example, if you use EnvString("username"), it would return
' the value of %username%.
Function EnvString(variable)
    variable = "%" & variable & "%"
    EnvString = oShell.ExpandEnvironmentStrings(variable)
End Function
' *****************************************************

PS: pour fonctionner la fonction IsMember à besoin de la fonction EnvString(variable)

Utilisation :

If isMember("GROUP_NAME") Then
  **Action**
End If

Ce type de fonction est régulièrement utilisé dans les scripts d’ouverture de session (Logon Script) afin d’exécuter une action en fonction de l’appartenance à un groupe Active Directory comme le mappage d’un lecteur réseau ou d’une imprimante.

Romain Drouche
Romain Drouche
Architecte Système | MCSE: Core Infrastructure
Expert en infrastructures IT avec plus de 15 ans d’expérience sur le terrain. Actuellement Chef de projet Systèmes et Réseaux et Référent SSI (Sécurité des Systèmes d’Information), je mets mon expertise au service de la fiabilité et de la sécurité des environnements technologiques.

Laisser un commentaire