Bonjour,
Je suis dans un environnement Windows Server 2008 (pas R2).
J'ai créé 2 unité org imbriquées
- marion1, a la racine
- marion2, dans marion1
Je souhaite activer l'option de protection.
Mon code fonctionne pour mon unité org du premier niveau mais pas pour le second, et je ne comprends vraiment pas pourquoi, alors si vous avez une idée...
Code ok pour ou marion1 (option cochée suite a l'exécution)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$objOU = [ADSI]("LDAP://ou=marion1,dc=play,dc=private")
$sec = $objOU.psbase.ObjectSecurity
## set the rights and control type
$act = [System.Security.AccessControl.AccessControlType]::Deny
$adrights = [System.DirectoryServices.ActiveDirectoryRights]::Delete
$adrights2 = [System.DirectoryServices.ActiveDirectoryRights]::DeleteTree
# who does this apply to
$who = New-Object -TypeName System.Security.Principal.NTAccount -ArgumentList "", "Everyone"
# stop delete
$newrule1 = New-Object -TypeName System.DirectoryServices.ActiveDirectoryAccessRule -ArgumentList $who, $adrights, $act
$sec.AddAccessRule($newrule1)
$objOU.psbase.CommitChanges()
# stop deletetree
$newrule2 = New-Object -TypeName System.DirectoryServices.ActiveDirectoryAccessRule -ArgumentList $who, $adrights2, $act
$sec.AddAccessRule($newrule2)
$objOU.psbase.CommitChanges()
Quand j'éxecute la meme chose en modifiant juste
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$objOU = [ADSI]("LDAP://ou=marion2,ou=marion1,dc=play,dc=private")
rien ne se passe sur marion2.

Merci d'avance!