1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
On Error Resume Next
'Déclaration des variables'
Dim objGroupList, objADObject, strGroup, objUser
Const ADS_PROPERTY_APPEND = 3
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshVarEnv = WshShell.Environment("PROCESS")
strNetBiosDomain = WshVarEnv.Item ("USERDOMAIN")
strLogonServer = WshShell.ExpandEnvironmentStrings("%Logonserver%")
strUserName = WshShell.ExpandEnvironmentStrings("%USERNAME%")
Set objUser = GetObject("WinNT://" & strNetBiosDomain & "/" _
& strUserName & ",user")
'Condition 1 : Si l'utilisateur appartient à "Groupe De montage source XXX1"
If IsMember("Groupe-XXX1") Then
Set objGroup = GetObject _
("LDAP://cn=Atl-Users,cn=Users,dc=NA,dc=fabrikam,dc=com")
objGroup.PutEx ADS_PROPERTY_APPEND, _
"member", Array("cn=MyerKen,ou=Management,dc=NA,dc=fabrikam,dc=com")
objGroup.SetInfo
End If
'Condition 2 : Si l'utilisateur appartient à Groupe de montage source XXX2"
If IsMember("Groupe-XXX2") Then
Set objGroup = GetObject _
("LDAP://cn=Atl-Users,cn=Users,dc=NA,dc=fabrikam,dc=com")
objGroup.PutEx ADS_PROPERTY_APPEND, _
"member", Array("cn=MyerKen,ou=Management,dc=NA,dc=fabrikam,dc=com")
objGroup.SetInfo
End If
'Fin du script'
WScript.quit
'Les 2 Fonctions de test d'appartenance aux groupes'
Function IsMember(strGroup)
If IsEmpty(objGroupList) Then
Call ReadGroups
End If
IsMember = objGroupList.Exists(strGroup)
End Function
Sub ReadGroups
Dim objGroup
Set objGroupList = CreateObject("Scripting.Dictionary")
objGroupList.CompareMode = vbTextCompare
For Each objGroup In objUser.Groups
objGroupList(objGroup.name) = True
Next
Set objGroup = Nothing
End Sub |
Partager