dsacls ist das Kommandozeilenprogramm, mit dem man in Active Directory Zugriffsberechtigungen definieren kann. Neben seiner etwas kruden Syntax hat es einen erheblichen Nachteil: Bei jeder Ausführung gibt es die komplette Zugriffsliste des bearbeiteten Objekts auf der Kommandozeile aus. Das macht die Automatisierung schwierig, denn leitet man diese Daten in eine Datei um, so erhält man sehr umfangreiche Logdateien, aus denen man mühsam auslesen muss, ob der Vorgang erfolgreich war. Mit folgender Methode geht das für viele Skript-Situationen viel effizienter.
Wenn dsacls ohne Fehler arbeitet, gibt es am Ende seiner Ausgabe zurück: “Der Befehl wurde erfolgreich ausgeführt.” Stößt es hingegen auf einen Fehler, so spart es sich die umfangreiche Ausgabe und meldet: “Der Befehl wurde nicht erfolgreich ausgeführt.”
In einer Skript-Situation gibt es manchmal nicht besonders viele mögliche Fehlerquellen, sodass man oft auf die zusätzliche Information zu dem Fehler verzichten kann. Hier geht es dann meist nur darum herauszufinden, ob das Kommando überhaupt erfolgreich war. Nähere Tests kann man dann ggf. hinterher manuell ausführen.
In solchen Momenten hilft es, an das dsacls-Kommando eine kleine Prüfung anzuhängen (das Folgende ist eine zusammenhängende Zeile):
dsacls "CN=Objekt,OU=MeineOU,DC=faq-o-matic,DC=net" | find /I "nicht erfolgreich" || echo dsacls war erfolgreich
Durch diesen Trick schluckt das “find”-Kommando sämtliche dsacls-Ausgaben und untersucht sie, ob es den Text “nicht erfolgreich” findet. Falls ja, gibt es diesen aus. Falls nicht, meldet es “dsacls war erfolgreich”. Das sorgt für schlanke Logdateien beim Scripting.
Verwandte Beiträge:
- dsacls in Extremsituation
dsacls.exe ist das Kommandozeilenwerkzeug, mit dem man Berechtigungen auf Objekte in Active Directory manipulieren kann. Heute hatte ich Gelegenheit, es... - “Objekt vor zufälligem Löschen schützen” per Skript setzen
Seit Windows Server 2008 gibt es eine neue Option beim Erzeugen von Organisationseinheiten (OU) in Active Directory: Sie nennt sich... - Wie führe ich eine Aktion nur aus, wenn der Ziel-Host erreichbar ist?
Oft soll eine bestimmte Aktion nur ausgeführt werden, wenn der Ziel-Host auch erreichbar ist. Das ist dann problematisch, wenn es... - Anmeldezeiten für AD-Benutzer per Skript ausgeben
Seit jeher lässt Windows zu, für einen Benutzer Anmeldezeiten zu definieren – seit Windows NT und auch jetzt in Active... - Gruppe “Prä-Windows 2000 kompatibler Zugriff” per Skript leeren
Die Gruppe “Prä-Windows 2000 kompatibler Zugriff” ist in der ersten Version von Active Directory unter Windows 2000 eingeführt worden, um...
http://faq-o-matic.net/?p=2363



Kategorie:
Translate EN

