Site icon RDR-IT

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.

Quitter la version mobile