OPSI ist ein mächtiges Werkzeug, um Windows Rechner „Up to Date“ zu halten. Prinzipiell kann man dass natürlich auch per Gruppenrichtlinien und einem Active Directory erreichen. Das Problem dabei ist aber, dass nicht alle Rechner Windows Pro Versionen sind (vor allem Laptops).
Man kann sehr einfach mittels WINST Scripten die Installation von Software vornehmen. Leider muss man sich mit jedem Installer separat beschäftigen. Manche benötigen nur einen /S Schalter um die Silent Installation durch zu führen. Bei anderen benötigt man, wie z.B. bei Adobe Produkten, spezielle MSI Dateien.
Ich habe mich auf der Wiki Seite von OPSI umgesehen und viel daraus gelernt. Leider ist es so, dass man dort bei jedem Script eine komplett eigene Vorgehensweise hat. Mal werden nur die nötigsten Dinge eingestellt. Zum Beispiel wird beim Firefox Installationsscript auf den minimalen Festplattenplatz geprüft. (wenn man weniger als 30 MB Speicherplatz hat, hat man allerdings andere Probleme) In diesem Script wird aber auch ein eigenes Firefox-Logo bei der Installation gezeigt und die möglichen Exitcodes behandelt.
Ich habe es für mich so gelöst, dass ich die (De-)Installation in eine separate Datei ausgelagert habe, die ich dann wie folgt einbinde:
include_append "%ScriptDrive%\globalScripts\setupFile.ins"
In dieser Datei unterscheide ich dann noch, ob es ein MSI Installer ist oder nur per exe funktioniert.
[Sub_installProgram] ShowBitmap "%ScriptPath%\" + $bitmap$ $headline$ Message "installiere " + $headline$ if (FileExists ($setupFile$)) if ($msiExec$ = "1") Winbatch_msi_setup /TimeOutSeconds 240 else Winbatch_setup /TimeOutSeconds 240 endif else LogError "file not found" isFatalError endif [Winbatch_msi_setup] msiexec /i $setupFile$ $SilentSwitch$ [Winbatch_setup] $setupFile$ $SilentSwitch$
Dies müsste ich sonst in jede Setup Datei separat schreiben. Der Vorteil von TimoutSeconds besteht darin, mögliche Fehler in dem Script bzw. dem Installer zu umgehen, indem das Script nach der vorgegebenen Zeit abgebrochen wird.
Ansonsten ist Winst sehr flexibel gehalten. Man kann auch Registry Änderungen vornehmen. Damit kann man die ganze Palette der Gruppenrichtlinien nutzen. Diese bestehen ja zu über 90% aus Registry Änderungen.
Ich finde es wichtig ein Versionsmanagement System (z.B. Subversion oder Git) für die Verwaltung der Script-Dateien ein zu setzen. Damit kann man alle Änderungen nach vollziehen und ggf. auch wieder zurück nehmen. Die Setup-Dateien müssen natürlich separat auf den Server geladen werden, das würde sonst das Versionsmanagement System aufblähen.