Question [Résolu] Poser des ACE sur une OU dans l'AD

Plus d'informations
il y a 14 ans 8 mois #9865 par Richard Lazaro
Bonjour à tous,

Je viens vers vous car j'ai un soucis.
Je dois poser deux ACE sur une OU dans mon AD j'arrive bien à poser une première mais quand je pose la deuxième la première est alors écrasé ...

[code:1]
$sid = New-Object System.Security.Principal.SecurityIdentifier 'S-1-5-21-1428881779-3318976875-7249819-5030'
$aceOne = New-Object System.DirectoryServices.ActiveDirectoryAccessRule ($sid, 0x30, 'Allow', (New-Object GUID), 'All')
$aceTwo = New-Object System.DirectoryServices.ActiveDirectoryAccessRule ($sid, 0x3, 'Allow', (New-Object GUID 'bf967a9c-0de6-11d0-a285-00aa003049e2'), 'None')

$obj = [ADSI]'LDAP://OU=PowerShell,OU=Microsoft,DC=think-ms,DC=net'
$obj.psbase.ObjectSecurity.SetAccessRule($aceTwo)
$obj.psbase.ObjectSecurity.SetAccessRule($aceOne)
$obj.psbase.commitchanges()
[/code:1]

J'ai bien mes deux ACE avec des paramètres correspondant à ce que je veux mais elles ne s'appliquent pas ...

Ce que je veux :

ActiveDirectoryRights : ReadProperty, WriteProperty
InheritanceType : All
ObjectType : 00000000-0000-0000-0000-000000000000
InheritedObjectType : 00000000-0000-0000-0000-000000000000
ObjectFlags : None
AccessControlType : Allow
IdentityReference : S-1-5-21-1428881779-3318976875-7249819-5028
IsInherited : False
InheritanceFlags : ContainerInherit
PropagationFlags : None

ActiveDirectoryRights : CreateChild, DeleteChild
InheritanceType : None
ObjectType : bf967a9c-0de6-11d0-a285-00aa003049e2
InheritedObjectType : 00000000-0000-0000-0000-000000000000
ObjectFlags : ObjectAceTypePresent
AccessControlType : Allow
IdentityReference : S-1-5-21-1428881779-3318976875-7249819-5028
IsInherited : False
InheritanceFlags : None
PropagationFlags : None


mais j'ai que la dernière qui passe ... elle écrase la précédente (j'ai essayé en faisant plusieurs commit ...)

Est ce que vous avez une idée ?

Bien Cordialement,
Richard Lazaro.<br><br>Message édité par: Arnaud, à: 7/07/11 21:59

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 8 mois #9868 par Arthur
Salut,

Normalement il ne faut pas faire un truc du genre:

[code:1] $obj.psbase.ObjectSecurity.AddAccessRule($aceTwo)
$obj.psbase.CommitChanges()
$obj.psbase.ObjectSecurity.AddAccessRule($aceOne)
$obj.psbase.CommitChanges()[/code:1]

?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 8 mois #9870 par Richard Lazaro
C'était trop beua pour être vrai ...
Non la deuxième ACE passé remplace celle d'avant :/

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 8 mois #9872 par Arthur
Sinon sur cet article l'auteur utilise le module Active Directory:

blogs.msdn.com/b/adpowershell/archive/20...tory-powershell.aspx

Et il applique bien 2 ACE dans son exemple.

Sinon test avec une seul méthode \&quot;CommitChanges\&quot; à la fin. On peut rêver. :whistle:<br><br>Message édité par: bilbao, à: 4/07/11 18:45

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 8 mois #9874 par Richard Lazaro
Je suis sous PowerShell V1 et sans module.
Et je préfère lutter avec des vrai problème de base pour connaître la racine de POSH.

Non, un seul commit ça merde aussi :p

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 8 mois #9875 par Arthur
Bon en cherchant du coté du C# j'ai trouvé ca:

social.msdn.microsoft.com/Forums/en/netf...2c-af4b-db255bca3215

Cependant dans l'exemple donné l'auteur fait un peut près la même chose que toi, ou alors j'ai zappé un truc.

J'ai pas vus grand chose d'autre.

Si vraiment tu te sent courageux tu peut faire ca en C#. (sur V2 ou avec un script qui compile le code sur V1 genre \&quot;New-Type\&quot;) :dry:<br><br>Message édité par: bilbao, à: 4/07/11 23:20

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.102 secondes
Propulsé par Kunena