Wenn heute in Foren darüber diskutiert wird, welche Tools am besten zur Verwaltung von Windows-Berechtigungen geeignet sind, fällt oft der Name SetACL. Das kostenlose und sogar im Quellcode verfügbare Programm ist weit verbreitet, über 400.000 Downloads belegen dies. Das liegt sicherlich daran, dass viele Administratoren eine leistungsfähigere Alternative zu den bekannten *CACLS-Programmen von Microsoft benötigen, die sie in SetACL finden.
Als Autor nicht nur dieser Zeilen, sondern auch von SetACL, möchte ich hier einfach ein wenig Hintergrundwissen zur Entstehung und zu den Funktionen von SetACL zum Besten geben, das in diesem Jahr 2011 schon auf eine zehnjährige Geschichte zurückblicken kann. Damals, kurz nach der Jahrtausendwende, arbeitete ich als Berater (vulgo Zeitarbeiter) für eine große Versicherung. Eines Tages erhielt ich die Aufgabe, Netzwerkdrucker auf Druckservern automatisiert zu einzurichten. Ich machte mich ans Werk und schrieb das eine oder andere Skript, musste jedoch nach einiger Zeit feststellen, dass ich einen Teil der Arbeit nicht würde automatisiert erledigen können: das Setzen von Berechtigungen auf die neu erzeugten Drucker. Es gab damals nach meinen Recherchen nur ein oder zwei kommerzielle Tools zum Setzen von Druckerberechtigungen von der Kommandozeile.
Da packte mich der Ehrgeiz. Nach kurzer Recherche war klar, dass es mit den entsprechenden API-Funktionen in Windows gar nicht so schwer ist, Druckerberechtigungen zu setzen. Und einige damals noch recht neue API-Funktionen können nicht nur auf Drucker berechtigen, sondern gleich auch noch auf Dateien, Registrierungsschlüssel, Dienste, Freigaben und einiges andere. Da kam mir die Grundidee zu SetACL: warum ein Tool zur Verwaltung nur von Druckerberechtigungen schreiben? Warum nicht eines, das mit allen möglichen Systemobjekten umgehen kann? Das war damals neu.
Am 22.3.2001 war die erste zur Veröffentlichung geeignete Version 0.70 fertig. In den anderthalb Jahren, die folgten, entwickelte sich das Programm so stark weiter, dass das ursprüngliche Anwendungsgerüst zu eng wurde und ich auf Sourceforge.net mit einer völligen Neuentwicklung begann.
Mittlerweile ist SetACL stabil und ausgereift – und sehr mächtig, wenn auch leider die Funktionsfülle nur über recht komplexe Kommandozeilenoptionen zugänglich gemacht werden kann. SetACL macht all das, was über die grafische Oberfläche an Berechtigungen konfiguriert werden kann, über die Kommandozeile zugänglich – und noch einiges mehr. So hat SetACL im Gegensatz zum Explorer beispielsweise überhaupt kein Problem damit, richtig lange Pfade mit über 260 Zeichen Länge zu verarbeiten. Ein anderes Beispiel: Mittels der Listing-Funktion können Berechtigungen angezeigt werden, und zwar Dank ein klein wenig Privilegien-Magie bei Administratorrechten von allen Objekten im System. Wenn Sie also schon immer mal nachsehen wollten, was eigentlich im Ordner "System Volume Information" in der Wurzel jedes Laufwerkes gespeichert wird, probieren Sie einfach folgenden SetACL-Befehl aus:
SetACL.exe -on "c:\System Volume Information" -ot file -actn list -list f:tab -rec cont_obj
SetACL zeigt daraufhin den Inhalt und die Berechtigungen von c:\System Volume Information samt aller darunter liegenden Verzeichnissen und Dateien tabellarisch an.
Neben der Kommandozeilenversion ist SetACL auch als COM-DLL verfügbar, was vor allem für Entwickler interessant ist, die damit alle Funktionen des Programms ohne Umweg über einen externen Prozess direkt aufrufen können.
Falls dieser Artikel Ihr Interesse geweckt hat, schauen Sie sich doch einfach auf helgeklein.com die Programmfeatures oder Beispiele an. Eventuelle Fragen beantworte ich gerne im Forum.
http://faq-o-matic.net/?p=2928