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 :

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'obtiens une erreur sur la ligne objGroup.Put "ntSecurityDescriptor", Array(objSecurityDescriptor) avec "Structure de l'ID de sécurité non valide" "code : 80070539"
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