Logo faq-o-matic.net
Logo faq-o-matic.net

dsacls-Ergebnis im Skript effizient prüfen

von veröffentlicht am25. Mai 2010, 12:48 Uhr Kurzlink http://faq-o-matic.net/?p=2363 Zitatlink
Kategorie Kategorie: Active Directory, Batch   Translate with Microsoft Translator Translate EN

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:

  1. dsacls in Extremsituation
    dsacls.exe ist das Kommandozeilenwerkzeug, mit dem man Berechtigungen auf Objekte in Active Directory manipulieren kann. Heute hatte ich Gelegenheit, es...
  2. “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...
  3. 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...
  4. 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...
  5. 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...

© 2005-2012 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!