Bonjour à tous,
J'ai créé un script qui me permet de généré des listes de distribution dans une domaine AD.
Tout est ok ! J'arrive à ajouter le manager, etc, etc... Il me manque JUSTE la petite coche qui va bien : "Le gestionnaire peut mettre à jour la liste des membres".
Après pas mal de recherche, j'ai compris qu'il s'agissait d'une modif d'acl, j'ai trouvé même un bout de code, que j'ai adapté... mais ca ne fonctionne pas :
J'obtiens une erreur sur la ligne objGroup.Put "ntSecurityDescriptor", Array(objSecurityDescriptor) avec "Structure de l'ID de sécurité non valide" "code : 80070539"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 set objSecurityDescriptor = objGroup.Get("ntSecurityDescriptor") Set objDACL = objSecurityDescriptor.DiscretionaryACL Set objACE = CreateObject("AccessControlEntry") objACE.Trustee = objUser.distinguishedName objACE.AccessMask = ADS_RIGHT_DS_WRITE_PROP objACE.AceFlags = ADS_ACEFLAG_DONT_INHERIT_ACE objACE.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT objACE.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT objACE.objectType = ADS_OBJECT_WRITE_MEMBERS objDACL.AddAce objACE objSecurityDescriptor.DiscretionaryACL = objDACL objGroup.Put "ntSecurityDescriptor", Array(objSecurityDescriptor) objGroup.SetInfo
J'ai volontairement mit que la partie du code interessante... si vraiment vous avez besoin de plus, je peu la donner!
Merci de votre aide en tout cas !!!
*** Edit ***
Avec le code suivant, je n'ai plus d'erreur... mais je ne vois rien se faire !!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Set objSecurityDescriptor = objGroup.Get("ntSecurityDescriptor") Set objDACL = objSecurityDescriptor.DiscretionaryACL Set objACE = CreateObject("AccessControlEntry") wscript.echo (objUser.sAMAccountName) objACE.Trustee = "Commun\" & objUser.Get("sAMAccountName") objace.accessmask = &H20 objace.acetype = &H5 objace.flags = &H1 objace.aceflags= &H2 objace.ObjectType = "{BF9679C0-0DE6-11D0-A285-00AA003049E2}" objSecurityDescriptor.DiscretionaryAcl = objDACL objgroup.Put "ntSecurityDescriptor", objSecurityDescriptor objgroup.SetInfo
Partager