MSI-Pakete zeitsynchronisiert starten mit dem MPR

Moderator: MVogt

MSI-Pakete zeitsynchronisiert starten mit dem MPR

Beitragvon epekny » 05. Jul 2010, 18:47

Aus meiner Sicht ist der Package Robot Editor zu diesem Zweck überschaubarer als die normalerweise übliche Package Wizzard Methode mit dem INF-File. Hier als Beispiel ein Paket welches 4 MSI Programme (SGN Client Update) installiert.

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
'#FDC:Ask
'
'killt mögliche noch laufende Robots-Prozesse
KRM\2
IEX\
   EVG\LogDirectory>$$LOG      ' Set log directory
   USM\4|$$LOG\SetupErrorLog\  ' Use silent mode with redirected error messages to error files
   DIP\150                     ' 150 ms delay between each command
EEX\

'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\

@
epekny
 
Beiträge: 1
Registriert: 05. Jul 2010, 18:30

Re: MSI-Pakete zeitsynchronisiert starten mit dem MPR

Beitragvon Olaf Meuther » 12. Jul 2010, 10:27

Viel Text, wenn man davon ausgeht, dass man
ansonsten gerade einmal 4 Zeilen in einer inf-Datei benötigen würde.
Dr. Olaf Meuther
Olaf Meuther
 
Beiträge: 120
Registriert: 30. Mär 2007, 09:47
Wohnort: Düsseldorf

Re: MSI-Pakete zeitsynchronisiert starten mit dem MPR

Beitragvon Theo_Gottwald » 13. Jul 2010, 09:49

Das scheint auf den ersten Blick so zu sein. Sehen wir mal etwas genauer hin.

Wenn Sie die 4 Zeilen INF-Datei hier mal posten, und diese erläutern, können wir real vergleichen, welche Features die INF-Datei bietet, verglichen mit dem Script oben.

Wenn Sie dann alle diese Features, die hier drin sind in die INF-Datei einbauen, müßten wir das nochmal vergleichen.

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 Empirum ausgewertet werden kann.

Package Robot 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 und den Rest einfach laufen zu lassen.
Das muß man bei der Einschätzung der Scriptlänge hier beachten.
Benutzeravatar
Theo_Gottwald
 
Beiträge: 259
Registriert: 03. Okt 2009, 08:57
Wohnort: Herrenstr.11 * 76706 Dettenheim

Re: MSI-Pakete zeitsynchronisiert starten mit dem MPR

Beitragvon Theo_Gottwald » 17. Aug 2017, 10:00

DER MPR kann sämtliche Skripting-Aufgaben für Installationen in eine EXE-Datei kapseln.
Er bietet dabei auch forschritliche FUnktionen wie zum Beispiel "REPLACE" (TTR\ oder RIF\ etc.).
Benutzeravatar
Theo_Gottwald
 
Beiträge: 259
Registriert: 03. Okt 2009, 08:57
Wohnort: Herrenstr.11 * 76706 Dettenheim


Zurück zu Package Robot

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast