Der versierte Administrator kann recht einfach und das sogar automatisiert in einem Skript, wiederkehrende Berechtigungen im AD und in AD LDS (Active Directory Lightweight Directory Services, ehemals ADAM) mit DSACLS delegieren. Denn über die Kommandozeile lassen sich die Berechtigungen auf einem AD-Objekt mit DSACLS, das sich unter Windows 2000 sowie Windows Server 2003 in den Windows Support Tools befindet (z.B. auf der Windows Server 2003 CD im Verzeichnis Support\Tools) und ab Windows Server 2008 bereits im Betriebssystem integriert ist, ebenfalls vergeben sowie entfernen. Der Vorteil an diesem Tool ist, dass man aufwändige Berechtigungen skriptbasiert delegieren und im Fehlerfall die vergebenen Berechtigungen leichter entfernen kann.
Mit dem folgenden Befehl werden die Berechtigungen für die OU „IT“ (im dsa.msc) in einer TXT aufgelistet:
Dsacls OU=IT,DC=kaan,DC=dikmenoglu,DC=de > C:\Dsacls.txt
Das DSACLS eignet sich auch sehr gut dazu, um die standardmäßige Sicherheitseinstellungen eines Objekts wiederherzustellen. Die standardmäßigen Sicherheitsinformationen erhält jedes Objekt durch das Active Directory-Schema. Denn jedes erstellte Objekt erhält durch das im entsprechenden classObject enthaltene Attribut Default-Security-Descriptor seine Sicherheitsinformationen.
Das bedeutet konkret, wenn z.B. ein Benutzer erstellt wird, werden die Sicherheitsinformationen vom Attribut defaultSecurityDescriptor
das in der Klasse User enthalten ist, auf das Benutzerkonto angewendet. Die Klasse User befindet sich in der Schemapartition im Pfad:
CN=User,CN=Schema,CN=Configuration,DC=kaan,DC=dikmenoglu,DC=de.
Dadurch erhält nun jedes Objekt bei seiner Erstellung durch den defaultSecurityDescriptor der jeweiligen Klasse seine Sicherheitsinformationen. Die Sicherheitsinformationen werden im Attribut defaultSecurityDescriptor im security descriptor definition language Format (SDDL-String) angegeben. Ausserdem bekommt das Objekt durch die darüberliegenden Einheiten (Domäne, OU) weitere Berechtigungen vererbt.
Hat man an einem AD-Objekt die Berechtigung so verändert das man den Überblick verloren hat, so lassen sich die Sicherheitseinstellungen die für diese Objektklasse im Schema des AD definiert ist wie folgt wiederherstellen: Dsacls <DN des Objekts> /S
Die Standardberechtigungen der OU IT in der Domäne kaan.dikmenoglu.de lassen sich wie folgt zurücksetzen:
Dsacls OU=IT,DC=kaan,DC=dikmenoglu,DC=de /S
Befinden sich im Distinguished Name (DN) des Objekts Leerzeichen, muss dieser in „Anführungszeichen“ gesetzt werden.
Hinweis für Windows Server 2008: Wird mit dem Parameter /S unter Windows Server 2008 die Berechtigungen eines Objekts zurückgesetzt, erhält man in der Kommandozeile die Fehlermeldung Falscher Parameter und die Meldung Der Befehl wurde nicht erfolgreich ausgeführt. Aber die Berechtigungen werden trotzdem zurückgesetzt. Der Befehl funktioniert.
Die Berechtigungen eines einzelnen Benutzers oder einer Gruppe lassen sich mit diesem Befehl entfernen:
Dsacls OU=IT,DC=kaan,DC=dikmenoglu,DC=de /R <DNS- oder NetBIOS Name der Domäne>\<sAMAccountName des Benutzers oder der Gruppe>
Der Befehl mit dem DNS-Namen der Domäne sieht dann so aus:
Dsacls OU=IT,DC=kaan,DC=dikmenoglu,DC=DE /R kaan.dikmenoglu.de\Yusuf
Der Benutzer oder die Gruppe kann auch mit dem userPrincipalName (UPN) angegeben werden:
Dsacls OU=IT,DC=kaan,DC=dikmenoglu,DC=DE /R Yusuf@kaan.dikmenoglu.de
Achtung: Die Parameter in Dsacls sind case-sensitive!
Die vergebenen Berechtigungen können in Form von ACEs (Access Control Entries) auch mit dem Kommandozeilentool DSREVOKE angezeigt und entfernt werden. Dieses Tool muss aber zuerst von Microsoft heruntergeladen werden und kann anschließend unter allen Serverversionen eingesetzt werden (auch unter Windows Server 2008!). ACLs werden (nicht so wie bei DSACLS) bei diesem Tool nicht berücksichtigt.
Die einzelnen ACEs eines Benutzers oder einer Gruppe lassen sich mit diesem Befehl anzeigen:
Dsrevoke /Report <DN des Objekts> <NetBIOS Name (nicht DNS-Name!) der Domäne>\<sAMAccountName eines Benutzers oder einer Gruppe>
Welche Berechtigungen der Benutzer Yusuf auf der OU IT in der Domäne kaan.dikmenoglu.de hat, lässt sich wie folgt anzeigen:
Dsrevoke /Report OU=IT,DC=kaan,DC=dikmenoglu,DC=de Kaan-Dikmenoglu\Yusuf