NorbertFe 2.155 Geschrieben 6. Januar Melden Geschrieben 6. Januar Da hat sich Nix geändert, aber ich brauche es zu selten um es definitiv zu sagen. 1 Zitieren
testperson 1.758 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 Zitieren
daabm 1.384 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 Zitieren
wznutzer 36 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 . Zitieren
cj_berlin 1.393 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 Zitieren
wznutzer 36 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 . Zitieren
wznutzer 36 Geschrieben Gestern um 09:49 Autor Melden Geschrieben Gestern um 09:49 (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 Gestern um 10:10 von wznutzer 1 Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.