testperson 1.859 Geschrieben 7. Januar Melden Geschrieben 7. Januar (bearbeitet) vor 11 Stunden schrieb wznutzer: Fall das auch jemand bauen will. Ich habe mich dazu entschieden, die Rechte auf den OUs nicht zu entfernen (authentifizierte Benutzer), sondern stattdessen ein explizites verweigern zu setzen. Der einfache Grund ist, dass beim scripten mit dsacls es nicht möglich ist, einzelne Rechte zu entfernen. Es funktioniert so aber auch prima. Wenn du dir bei neuen OUs das entfernen der Rechte sparen willst, kannst du das Schema entsprechend anpassen und dort die default Berechtigungen für neue OUs setzen: Active Directory: Controlling Object Visibility – List Object Mode | Microsoft Learn bearbeitet 7. Januar von testperson 1
daabm 1.431 Geschrieben 17. Januar Melden Geschrieben 17. Januar Wer List Object MOde verwendet und "manuell" administriert, der MUSS den DefaultSD von nahezu allem bearbeiten, sonst könnte man sich schon ersteres sparen
wznutzer 37 Geschrieben 20. Januar Autor Melden Geschrieben 20. Januar Am 17.1.2025 um 19:07 schrieb daabm: Wer List Object MOde verwendet und "manuell" administriert, der MUSS den DefaultSD von nahezu allem bearbeiten, sonst könnte man sich schon ersteres sparen Ich glaube ich würde es verstehen, wenn ich wüsste was der DefaultSD ist .
cj_berlin 1.508 Geschrieben 20. Januar Melden Geschrieben 20. Januar vor 31 Minuten schrieb wznutzer: Ich glaube ich würde es verstehen, wenn ich wüsste was der DefaultSD ist . Das ist die ACL, die jedes Objekt von seiner Klasse im Schema mitgegeben bekommt, wenn es erstellt wird. Wenn Du dir ein neues Objekt anschaust und die Berechtigungen unter "Advanced" auflistest, dann gibt es halt Einträge, die nicht vererbt sind. Das sind diese 1 1
wznutzer 37 Geschrieben 20. Januar Autor Melden Geschrieben 20. Januar vor 3 Stunden schrieb cj_berlin: Das ist die ACL, die jedes Objekt von seiner Klasse im Schema mitgegeben bekommt, Jetzt wird es hell. Der Default Security Descriptor .
wznutzer 37 Geschrieben 21. Februar Autor Melden Geschrieben 21. Februar (bearbeitet) Am 6.1.2025 um 20:16 schrieb NorbertFe: Dafür gibts dsrevoke. ;) https://www.microsoft.com/en-us/download/details.aspx?id=19288 Ich wollte nur kurz notieren, dass es auch ohne dsrevoke geht. Ich kann nichts dazu sagen, ob dsrevoke gut ist oder schlecht. Ich habe es nach nochmaligem Überlegen mit Powershell umgesetzt. Man kann das z. B. so machen: ################################################ # authentifizierten Benutzern Rechte auf OU nehmen ################################################ # Definition des Principal $AuthUsersPrincipal = "NT-AUTORITÄT\Authentifizierte Benutzer" # Definition der zu entziehenden Rechte: ListObject = 128, ListChildren = 4 $rights2Remove = [System.DirectoryServices.ActiveDirectoryRights]::ListChildren -bor [System.DirectoryServices.ActiveDirectoryRights]::ListObject ################################# # HauptOU ################################# # ACL OU auslesen $PathAclHauptOU = "AD:$PathHauptOU" $aclHauptOU = Get-Acl -Path $PathAclHauptOU # Durch die einzelnen ACEs (Access Control Entries) der OU iterieren # und prüfen, ob diese vom gewünschten Principal sind. # Falls ja, entfernen wir nur die gewünschten Rechte aus der ACE. $modified = $false foreach($ace in $aclHauptOU.Access) { if(($ace.IdentityReference -eq $AuthUsersPrincipal) -and ($ace.AccessControlType -eq [System.Security.AccessControl.AccessControlType]::Allow)) { # Prüfen, ob in diesem ACE mindestens eines der zu entfernenden Rechte enthalten ist if(($ace.ActiveDirectoryRights -band $rights2Remove) -ne 0) { # Aktuellen ACE entfernen $aclHauptOU.RemoveAccessRuleSpecific($ace) # Berechnung der verbleibenden Rechte (alle Bits, die NICHT in $rights2Remove gesetzt sind) $remainingRights = $ace.ActiveDirectoryRights -band (-bnot $rights2Remove) # Falls noch weitere Rechte übrig bleiben, ein neues ACE mit diesen Rechten erstellen if($remainingRights -ne 0) { $newACE = New-Object System.DirectoryServices.ActiveDirectoryAccessRule ( $ace.IdentityReference, $remainingRights, $ace.AccessControlType, $ace.InheritanceType, $ace.ObjectType ) # neues (bereinigtes) ACE hinzufügen $aclHauptOU.AddAccessRule($newACE) } $modified = $true } } } # Geänderte ACL nur setzen, wenn wirklich etwas entfernt bzw. geändert wurde if($modified) { Set-Acl -Path $PathAclHauptOU -AclObject $aclHauptOU } else { Write-Host "Keine zu entfernenden Rechte für '$AuthUsersPrincipal' gefunden oder bereits entfernt." } bearbeitet 21. Februar von wznutzer 1
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden