MSI-Pakete zeitsynchronisiert starten mit dem AutoMATE

Alle Fragen, Tipps und Tricks rund um ACMP AutoMATE
Antworten
theogott
Beiträge: 15
Registriert: So Feb 27, 2011 3:29 pm

Wie kann man mehrere MSI Installationen in einem einzigen AutoMATE Skript, zeitgesteuert - und je nach Bedarf - starten?

Code: Alles auswählen

' +++ main_UtimacoClient_5_50.rem +++
' Zweck: 
' erstellt am: 02.07.2010
' von: Pekny
'========================
'#EXE:?path
'#SPI:ForceWrite
'#SPI:VBRun
'#SPI:NoAuto
'#SPI:x64
'
'killt mögliche noch laufende AutoMATE-Prozesse
KRM\2

'Abfrage ob schon installiert ist
IAI\Sophos SafeGuard Preinstall 5.50.0
   GOTO part2
EAI\

EXX\?ws\msiexec.exe|/i "?pfad\1_sgxclientpreinstall.msi" /qn
VAR\$$PID=$v4$
'Sprungmarke zu Unterprogramm "Todo"
GSB\Todo|Sophos SafeGuard Preinstall 5.50.0|600

:part2
IAI\Sophos SafeGuard 5.50.0 Client
   GOTO part3
EAI\
EXX\?ws\msiexec.exe|/i "?pfad\2_sgnclient.msi" REBOOT=Reallysuppress ADDLOCAL=ALL /qn
VAR\$$PID=$v4$
GSB\Todo|Sophos SafeGuard 5.50.0 Client|1800

:part3
IAI\Sophos SafeGuard Configuration Protection 5.50
   GOTO part4
EAI\
EXX\?ws\msiexec.exe|/i "?pfad\3_sgn_cp_client.msi" /qn REBOOT="Reallysuppress"
VAR\$$PID=$v4$
GSB\Todo|Sophos SafeGuard Configuration Protection 5.50|660

:part4
IAI\Sophos SafeGuard 5.50.0 Client Configuration
   GOTO enx
EAI\
EXX\?ws\msiexec.exe|/i "?pfad\4_base_5.50.msi" /qn REBOOT="Reallysuppress"
VAR\$$PID=$v4$
GSB\ToDo|Sophos SafeGuard 5.50.0 Client Configuration|600
' Errorlevel setzen
SRV\0
:enx
@

:Todo
WPT\$$PID|$$_02
ITO\
' Timeout Fehler
'RMD\Cache
   SRV\5
   GOTO enx
ETO\
'Pruefung ob SW installiert ist bzw. unter Software eingetragen wurde
NAI\$$_01
' Errorlevel selbst definiert, Fehler, es wurde nicht installiert!!
   SRV\6
   GOTO enx
EAI\
'Rücksprung aus Unterprogramm "Todo"
RET\

@
Sehen wir mal etwas genauer hin, wie das Skript funktioniert.

Das Script oben startet 4 MSI Installationen - eine nach der anderen.
Aber es macht noch einiges mehr.

Es prüft vor jeder Installation ob das jeweilige Paket schon drauf ist, überspringt in dem Fall die Installation und bietet ein Error-Handling.

Damit sich der Sinn der Zeilen etwas erschliesst, erläutere ich die hier mal:

Code: Alles auswählen

'Abfrage ob schon installiert ist
IAI\Sophos SafeGuard Preinstall 5.50.0
   GOTO part2
EAI\


IAI\ prüft ob dieses Paket schon drauf ist und falls so springt das Skript zu einem Label.

Schreiben muss der Admin dabei nur das "IAI\" den Rest fügt man aus einem Menü ein.
Es sieht also nur nach viel Text aus, den man zudem nicht per Hand schreiben muß.

Der eigentliche Start des jeweiligen Paketes erfolgt wie üblich mit einer einzigen Zeile:

Code: Alles auswählen

EXX\?ws\msiexec.exe|/i "?pfad\1_sgxclientpreinstall.msi" /qn

Am Ende wird nochmals auf verschiedene Weise geprüft ob die Pakete sich ordentlich installiert haben.

Code: Alles auswählen

ITO\
' Timeout Fehler
'RMD\Cache
   SRV\5
   GOTO enx
ETO\
'Pruefung ob SW installiert ist bzw. unter Software eingetragen wurde
NAI\$$_01
' Errorlevel selbst definiert, Fehler, es wurde nicht installiert!!
   SRV\6
   GOTO enx
EAI\
Das sieht etwas kompliziert aus, aber auch nur wenn man die Bedeutung der Befehle nicht kennt.

ITO\ bedeutet "If TimeOut" also wenn das Paket zu lange installiert. Dazu sind bei jedem Paket Maximalzeiten angegeben die nicht überschritten werden dürfen. So kann man diese Art der Installation gegen sporadisch auftretende Probleme absichern.

NAI\ ist der Pedant zu IAI\ und prüft ob eine Anwendung nicht installiert ist.
So kann man nach der Installation ohne in der Registry suchen zu müßen leicht feststellen ob alles erfolgreich verlaufen ist.
Auch hier sieht es nur für den Uneingeweihten nach viel aus.

Mit der Zeile:

Code: Alles auswählen

  SRV\6
wird schliesslich ein "Errorlevel" gesetzt, der dann im aufrufenden System ausgewertet werden kann.

AutoMATE Scripte sind üblicherweise kürzer als jeweils andere Scripte die das Gleiche tun. Das liegt daran dass die Befehle in der Regel nur 4 Zeichen lang sind. Allerdings muß es auch das Gleiche sein.

Es geht hier nicht darum, nur einfach 4 Pakete anzustarten, sondern es werden auch noch die Bedingugnen, welche Pakete erforderlich sind jeweil überprüft. Ein "intelligentes Paket".
Theo Gottwald
Selbständiger IT-Berater

ACMP AutoMATE Professional
Let the Robots do it for you.
Antworten