Aus dem Alltag eines IT'lers

Vergabe von Changerechten per SCCM

Tips & Tricks Software ist mit dem SCCM schnell verteilt; was aber, wenn die Anwendung bzw. der User danach Changerechte (Schreibrechte) auf das Installationsververzeichnis benötigt, diese aber nicht hat ?
Lösen könnte man dies per GPO, ist jedoch nur ein geringer Teil von Installationen bei einer handvoll Usern betroffen, kann man hierzu auch den SCCM einsetzen.

Zum Zuge kommt in diesem Zusammenhang "ICACLS.exe", das mit Windows Vista und Windows 7 daherkommt. Vorherige Windows-Versionen nutzen noch XCACLS bzw. CACLS.
Um die Changerechte mit ICACLS zu vergeben, setzt man einen Kommandozeilenbefehl ab. Hierzu legt man ein Programm im SCCM an, über das die Anforderung ausgeführt wird.
Da die Änderungen am Installationsverzeichnis natürlich erst nach der Installation der jeweiligen Anwendung erfolgen können, ist es sinnvoll ein Paket anzulegen und darin zwei Programme.
Programm 1 verweist auf die ausführbare Datei der zu installierenden Anwendung und Programm 2 beinhaltet die Kommandozeile. Für Programm 2 legt man fest, dass seiner Ausführung zuerst die von Programm 1 vorweg geht ("Ein anderes Programm zuerst ausführen" => Verweis auf Programm 1). Damit wird also zunächst die Anwendung (Programm 1) installiert und anschließend die Berechtigungsänderung durch Programm 2 am Verzeichnis vorgenommen.

Mit folgender Kommandozeile lassen sich schließlich Schreibrechte, auch auf Unterordner, vergeben:

icacls C:\Programme\Anwendung /grant "Domain Users":(OI)(CI)M

In meinem Beispiel wird somit "ICACLS" aufgerufen und ihm mitgeteilt, dass die Änderungen für den Installationspfad "C:\Programme\Anwendung" gelten sollten. "C:", "Programme" und "Anwendungen" sollten natürlich durch die eigenen Pfadangaben oder durch Umgebungsvariablen wie z.B. %PROGRAMFILES% ersetzt werden.
Der Befehl "/grant" sagt es eigentlich schon aus: vergebe die entsprechenden Berechtigungen für... . Für, im Falle dieses Beispiels "Domain Users". Hier könnte auch administrator oder HMustermann stehen. Bestehen Benutzername oder Gruppe aus zwei getrennten Wörtern, müssen sie in Anführungszeichen ("") gesetzt werden.
Nach den zu berechtigenden Benutzern folgt ein Doppelpunkt zur Trennung zwischen Angaben und Parametern, die wiederum in Klammern folgen.
In diesem Beispiel sollen die Objekt- und Containervererbungen ((OI) und (CI)) gesetzt werden. Das "M" steht abschließend für "Modify", also für die gewünschten Schreibrechte, während "F" für Vollzugriff ("Full Access") oder "N" für keinen Zugrif ("No Access") beispielsweise stehen würden.

Eine vollständige Befehlsliste sowie Beispiele erhält man über den Aufruf von "icacls /?" (ohne die "") im Command-Prompt.


Zu guter Letzt fügt man dem Paket mit den beiden Programmen einen Distribution Point hinzu, aktualisiert diesen und kündigt Programm 2, also das, dem Programm 1 vorausgeht, für seine Rechner an. Damit erspart man sich zwei Ankündigungen, da Programm 2 Programm 1 zuerst loslaufen lässt.


Weitere Informationen zu CACLS.EXE und ICACLS.EXE findet man auf Winfaq.de .

No comments

Add Comment

E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.
Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
BBCode format allowed
Was ergibt 17+4 ?

Submitted comments will be subject to moderation before being displayed.