Modification ACL pour une liste de distrib - VB/VBA/VBS - Programmation
Marsh Posté le 16-04-2013 à 09:04:12
Bonjour, 3 ans plus tard ..... mais si ca peut aider quelqu'un  
  
en VB2008 pour cocher cette sacré case  
 
 
Imports ActiveDs 
'-------------------------------- 
Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5 
Const ADS_RIGHT_DS_WRITE_PROP = &H20 
Const ADS_ACEFLAG_INHERIT_ACE = &H2 
Const ADS_ACEFLAG_DONT_INHERIT_ACE = &H0 
Const ADS_FLAG_OBJECT_TYPE_PRESENT = &H1 
Const ADS_OBJECT_WRITE_MEMBERS = "{BF9679C0-0DE6-11D0-A285-00AA003049E2}" 
Dim GRP As New DirectoryEntry("LDAP://NOV.FR/CN=GRPA,OU=AAA,DC=nov,DC=fr" )          'ici la variable qui definie le groupe en fonction de votre Active directory 
Dim newAce = New AccessControlEntryClass() 
Dim GRPSD As SecurityDescriptor = CType(GRP.Properties("ntSecurityDescriptor" ).Value, SecurityDescriptor) 
Dim GRPAcl As AccessControlList = CType(GRPSD.DiscretionaryAcl, AccessControlList) 
newAce.Trustee = "NOV.fr\GRP-AD-GEST"                     ' ici le nom du groupe ou user qui gere deja votre groupe. 
newAce.AccessMask = ADS_RIGHT_DS_WRITE_PROP 
newAce.AceFlags = ADS_ACEFLAG_DONT_INHERIT_ACE 
newAce.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT 
newAce.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT 
newAce.ObjectType = ADS_OBJECT_WRITE_MEMBERS 
GRPAcl.AddAce(newAce) 
GRPSD.DiscretionaryAcl = GRPAcl 
GRP.Properties("ntSecurityDescriptor" ).Value = GRPSD 
GRP.CommitChanges()
Marsh Posté le 15-06-2010 à 11:14:47
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"
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 de message d'erreur, mais il ne fait strictement rien...
Message édité par podezebi le 15-06-2010 à 13:41:16