Hauptinhalt

Das Problem, Programme in einer Windows-Domäne an Client-Computer zu verteilen, die keinen eigenen MSI-Installer mitliefern, ist immer wieder die Ursache für zeitintensive Handarbeit eines Domänen-Administrators. Software, die einen MSI-Installer mitliefert, kann ohne weiteres über GPO ausgerollt werden. Bei Programmen, die nur einen EXE-Installer mitliefern, funktioniert das nicht ohne weiteres. Anmeldeskripte laufen unter den Rechten des anmeldenden Benutzers, wodurch oftmals eine Installation scheitert. Die Alternative, jedem Benutzer lokale Administrationsrechte zu erteilen, scheidet für nahezu alle (Unternehmens-)Netzwerke aus.

Folgende Lösung bietet sich daher in solchen Fällen an:

  • Erstellung eines Computerscripts, das via GPO gestartet wird.
  • Das Script läuft VOR der Benutzeranmeldung und mit System-Rechten.
  • Installation und Logging von EXE-Installern, die einen "Silent-Modus" mitliefern.

Zunächst erstellt man eine Freigabe auf dem Anmeldeserver. Enthalten sind drei Ordner:

  • /commands/
  • /files/
  • /log/

Ebenso werden direkt in die Freigabe folgende Batch-Skripte gespeichert:

  • installer.bat
  • setup.bat

Download beider Dateien im ZIP-Archiv

Beide Skripte müssen dahingehend angepasst werden, dass \\server\share durch den eigenen Server-Namen und den Freigabenamen ersetzt werden.

In den Ordner /files/ werden die EXE-Installer kopiert, z.B. Mozilla Firefox 7. Es bietet sich an, die EXE-Datei dann umzubenennen in einen einfachen Dateinamen, z.B. Firefox7.exe. Anschließend wird eine Textdatei in /commands/ erstellt mit dem Dateinamen Firefox7 und folgendem Inhalt:

Firefox7.exe -ms

Der Parameter -ms löst die unbeaufsichtigte Installation dieser Software aus. Bei anderen Programmen ist oft der Parameter /s geläufig. Wichtig ist, dass der Parameter stimmt, sonst wird die Software nicht installiert. Bei Unklarheiten ist die Dokumentation des Programms zu durchsuchen, oder man benutzt die Suchmaschine des eigenen Vertrauens. Im Falle des Firefox existieren noch weitere Parameter, um z.B. den Installationspfad zu ändern. Im hier beschriebenen Fall wird nur die Standardinstallation ausgelöst.

Als letzter Schritt wird das Skript noch in den Gruppenrichtlinien für den/die Computer eingetragen. Dazu muss am Server die Gruppenrichtlinie für die Computer geöffnet werden. Über den Baum Computerkonfiguration - Richtlinien - Windows-Einstellungen - Skripts kann dann für das Objekt Starten ein neues Startskript hinzugefügt werden.

dom_inst_1

Im Reiter Skripts wird über die Schaltfläche Hinzufügen... ein neues ausführbares Skript hinzugefügt.

dom_inst_2

Hier wird der Pfad zur installer.bat angegeben. Wie bisher auch, muss dieser Pfad natürlich den eigenen Gegebenheiten angepasst werden.

dom_inst_3

Nach einem Update der Gruppenrichtlinien auf dem Client-Computer (z.B. über gpupdate in der Kommandozeile) wird beim nächsten Neustart das Programm installiert. Damit an diesem Computer nicht bei jedem Start das Programm installiert wird, erstellt das Skript eine Textdatei im Ordner /log/ mit Programmtitel und Computernamen. Wenn die Textdatei existiert, wird das Programm nicht mehr installiert. Im Fehlerfall muss diese Textdatei gelöscht werden, damit beim nächsten Neustart des Clients ein weiterer Installationsversuch ausgelöst wird. Analog für das Beispiel Firefox können alle anderen Programme mit "silent" EXE-Installern ebenfalls verteilt werden. Zuerst die EXE-Datei in /files/, anschließend die Textdatei in /commands/ mit Dateinamen und Parameter als Inhalt.

Wichtig: Damit alles reibungslos funktioniert, benötigt der Client-Computer (nicht der Benutzer) Leserechte auf die gesamte Freigabe, sowie Schreibrechte im Ordner /log/. Es bietet sich also an, für die Gruppe Domänencomputer auf dem Server die nötigen Lese- und Schreibrechte in der Freigabe hinzuzufügen.

Findige Programmierer sind bestimmt in der Lage, für diesen manuellen Weg ein kleines Tool oder ein Web-Interface zu erstellen. Vielleicht werde ich mich irgendwann auch noch damit beschäftigen.