Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1594 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Modification ACL pour une liste de distrib

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Modification ACL pour une liste de distrib

n°2001732
podezebi
Posté le 15-06-2010 à 11:14:47  profilanswer
 

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 :
  1. set objSecurityDescriptor = objGroup.Get("ntSecurityDescriptor" )
  2.  Set objDACL = objSecurityDescriptor.DiscretionaryACL
  3.  Set objACE = CreateObject("AccessControlEntry" )
  4.         objACE.Trustee = objUser.distinguishedName
  5.         objACE.AccessMask = ADS_RIGHT_DS_WRITE_PROP
  6.         objACE.AceFlags = ADS_ACEFLAG_DONT_INHERIT_ACE
  7.         objACE.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
  8.         objACE.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT
  9.         objACE.objectType = ADS_OBJECT_WRITE_MEMBERS
  10.         objDACL.AddAce objACE
  11.  objSecurityDescriptor.DiscretionaryACL = objDACL
  12.  objGroup.Put "ntSecurityDescriptor", Array(objSecurityDescriptor)
  13.  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 de message d'erreur, mais il ne fait strictement rien...
 

Code :
  1. Set objSecurityDescriptor = objGroup.Get("ntSecurityDescriptor" )
  2.  Set objDACL = objSecurityDescriptor.DiscretionaryACL
  3.  Set objACE = CreateObject("AccessControlEntry" )
  4.         wscript.echo (objUser.sAMAccountName)
  5.  objACE.Trustee = "Commun\" & objUser.Get("sAMAccountName" )
  6.           objace.accessmask = &H20
  7.  objace.acetype = &H5
  8.  objace.flags = &H1
  9.  objace.aceflags= &H2
  10.  objace.ObjectType = "{BF9679C0-0DE6-11D0-A285-00AA003049E2}"
  11.  objSecurityDescriptor.DiscretionaryAcl = objDACL
  12.  objgroup.Put "ntSecurityDescriptor", objSecurityDescriptor
  13.  objgroup.SetInfo


Message édité par podezebi le 15-06-2010 à 13:41:16
mood
Publicité
Posté le 15-06-2010 à 11:14:47  profilanswer
 

n°2186002
nov38
Posté le 16-04-2013 à 09:04:12  profilanswer
 

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()


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Modification ACL pour une liste de distrib

 

Sujets relatifs
saisie semie automatique liste déroulante Accessmise à jour de liste déroulante sous access 2007
VBA création d'une liste de validationMacro recherche, report, modification
Générer une liste qui s'affiche comme un tableauproblème de modification .bashrc
[C] Probleme swap liste double chainéeAcceder aux attributs d'un objet dans une liste
Creation d'une liste a partir d'un select 
Plus de sujets relatifs à : Modification ACL pour une liste de distrib


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR