Seite 1 von 1
Pakete erstellen - Allgemeine Syntax
Verfasst: 01 Feb 2012, 15:08
von staybb
Ist es generell möglich folgende Syntax für die Verteilung verschiedenster Pakete/Programme zu verwenden?
Code: Alles auswählen
[Initial]
Message=Installiere ****
StayOnTop=false
[Aktionen]
Winbatch_product_silent_install
[Winbatch_product_silent_install]
msiexec.exe /i %SCRIPTPATH%\****.msi REBOOT=ReallySuppress /qb-!
Je nach Programm natürlich angepasst.
Wir wollen opsi produktiv einsetzen und haben schon zwei Pakete erfolgreich mit dieser Syntax verteilt.
Meine Frage lautet einfach, ob man mit diesen Befehlen die meisten Programme verteilen kann oder muss man etwas beachten?
Re: Pakete erstellen - Allgemeine Syntax
Verfasst: 01 Feb 2012, 15:36
von Thomas_H
Moinsens,
das kann man pauschal nicht sagen. Meine Erfahrung geht dahin, dass fast jedes Installationsprogramm andere Aufrufparameter hat. Die wiederholen sich zwar, je nach Hersteller des Setup-Programms, aber das zu installierende Programm an sich hat seine Eigenheiten. Dein Script berücksichtigt auch keine Addons, die vielleicht zu installieren sind, keine Registry-Einträge, die gesetzt werden müssen.
Grundsätzlich ist es gut, sich eine Vorlage zu schreiben. Ich persönlich würde aber immer eine Section haben, in welcher ich nur die Parameter ändere. Ich zieh hier mal ein Beispiel (hier: IrfanView) aus einem meiner Scripte:
Code: Alles auswählen
DefVar $MsiId32$
DefVar $UninstallProgram32$
DefVar $MsiId64$
DefVar $UninstallProgram64$
DefVar $LogDir$
DefVar $ProductId$
DefVar $MinimumSpace$
DefVar $InstallDir32$
DefVar $InstallDir64$
DefVar $ExitCode$
DefVar $LicenseRequired$
DefVar $LicenseKey$
DefVar $LicensePool$
DefVar $INST_SystemType$
DefVar $INST_architecture$
DefVar $Version$
DefVar $Inst_Cmd32$
DefVar $Inst_Cmd64$
DefVar $Inst_Prg$
DefVar $Inst_Cmd_Plg$
DefVar $Inst_Prg_Plg$
Set $INST_SystemType$ = GetSystemType
set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
Set $LogDir$ = "%SystemDrive%\tmp"
; ----------------------------------------------------------------
; - Please edit the following values -
; ----------------------------------------------------------------
;$ProductId$ should be the name of the product in opsi
; therefore please: only lower letters, no umlauts,
; no white space use '-' as a seperator
Set $ProductId$ = "irfanview"
;Kein Punkt in der Versionsnummer! 4.30 ist 430, 4.40 ist 440 oder 4.51 ist 451!
Set $Version$ = "430"
Set $MinimumSpace$ = "3 MB"
; the path were we find the product after the installation
Set $InstallDir32$ = "%ProgramFiles32Dir%\IrfanView"
Set $InstallDir64$ = "%ProgramFiles64Dir%\IrfanView"
Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$
Set $Inst_Prg$ = ""+"iview"+$Version$+"_setup.exe"+""
Set $Inst_Cmd32$ = ' /silent /folder="'+$InstallDir32$+'" /desktop=1 /allusers=1 /group=1 /assoc=1'
Set $Inst_Cmd64$ = ' /silent /folder="'+$InstallDir64$+'" /desktop=1 /allusers=1 /group=1 /assoc=1'
Set $Inst_Prg_Plg$ = "irfanview_plugins_"+$Version$+"_setup.exe"
Set $Inst_Cmd_Plg$ = ' /silent'
; ----------------------------------------------------------------
Hier kann man sich immer wieder auf die oben definierten Variablen beziehen und dann den Rest des Scriptes beinahe pauschal für alles schreiben. Besonderheiten von zu kopierenden Modulen, AddOns usw. sind natürlich auch hier nicht berücksichtigt. Wäre aber mit einer If-Schleife abfragbar, wenn ich eine Variable "Set $CopyModul$ = 0" habe. Ist sie 0, wird die Sektion mit dem copy-Befehl ignoriert, ist sie 1, wird sie abgearbeitet - natürlich muss ich sie dann auch definieren.
Und wichtig auch ist IMHO das Errorhandling, was bei einem solchen kurzen Script nicht berücksichtigt ist.
Gruß
Thomas_H
Re: Pakete erstellen - Allgemeine Syntax
Verfasst: 02 Feb 2012, 11:07
von cmu
Aber prinzipiell lässt sich so ein großteil von Software installieren, wenn auch recht simpel. Aber darauf lässt sich aufbauen. Ich habe auch so angefangen und nun schon recht komplexe Scripte die Prüfen ob die Software noch läuft, welche Version installiert ist und entsprechend die alte deinstalliert und soweiter..
Re: Pakete erstellen - Allgemeine Syntax
Verfasst: 02 Feb 2012, 11:10
von tobias
ich mach das auch immer so. Wenn ne Software dringend benötigt wird auf einem Client mache ich erstmal ein Lite Paket wenn dann mal Zeit ist mache ich nen ordentliches auf Basis des Templates.