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.