Exitcode von MSI-Installation auswerten mit dem MPR

Moderator: MVogt

Post Reply
User avatar
Theo_Gottwald
Posts: 367
Joined: 03. Oct 2009, 08:57
Location: Herrenstr.11 * 76706 Dettenheim
Contact:

Exitcode von MSI-Installation auswerten mit dem MPR

Post by Theo_Gottwald » 19. Aug 2017, 20:52

Nach Diskussion mit einem Forumskollegen sind Installationen nicht mit einem einzigen Aufruf eines MSI-Paketes zu machen.

Da muß auch mal auf die Rückgabe eines MSI-Aufrufes (Errorlevel,Exitcode) entsprechend reagiert werden.
Solche Skripte können komplex werden und mehrere Seiten lang sein.

Durch seine skript-programmierbarkeit bietet der MPR dafür ideale Voraussetzungen.
Und hat so das Potential solche Skripte abzukürzen und zu vereinfachen.

Hier ein Beispiel, wie man mit dem MPR auf EXITCODES von MSI-Installationn "reagieren" kann.

Die Details habe ich im Code kommentiert.
Ich habe hier nur für 2 mögliche EXIT-Codes eine Behandlung eingebaut:

-> 0 - Alles Ok
-> 1639 - ungültige MSI-Parameter
-> dann kommt mit CEL\ (ELSE) noch eine allgemeine Message für alle anderen Rückgaben die nicht explizit behandelt werden.

Die Verwendung von SLC\ ist einfacher als wenn man mit IVV\ (IF ...ELSE ...ENDIF) jede einzelne Möglichkeit abfragt.
Die verwendete SLC\-Option (SELECT CASE) bietet unlimitierte Möglichkeiten auf Rückgaben von MSI-Paketen zu reagieren.

Als lauffähiges Beispiel dient noch Mal die TightVNC Installation.

Code: Select all

KRM\2
'
'
VAR\$$EXE=?path\tightvnc-2_8_5-setup-64bit.msi

VAR\$$P01=/quiet
VAR\$$P02=/norestart 
VAR\$$P03=ADDLOCAL="Server,Viewer" 
VAR\$$P04=VIEWER_ASSOCIATE_VNC_EXTENSION=1
VAR\$$P05=SERVER_REGISTER_AS_SERVICE=1
VAR\$$P06=SERVER_ADD_FIREWALL_EXCEPTION=1
VAR\$$P07=VIEWER_ADD_FIREWALL_EXCEPTION=1
VAR\$$P08=SERVER_ALLOW_SAS=1
VAR\$$P09=SET_USEVNCAUTHENTICATION=1
VAR\$$P10=VALUE_OF_USEVNCAUTHENTICATION=1
VAR\$$P11=SET_PASSWORD=1
VAR\$$P12=VALUE_OF_PASSWORD=PASSWORD
VAR\$$P13=SET_USECONTROLAUTHENTICATION=1
VAR\$$P14=VALUE_OF_USECONTROLAUTHENTICATION=1
VAR\$$P15=SET_CONTROLPASSWORD=1
VAR\$$P16=VALUE_OF_CONTROLPASSWORD=PASSWORD

VAR\$$PAL=$$P01 $$P02 $$P03 $$P04 $$P05 $$P06 $$P07 
VAR\$$PAL=$$PAL $$P08 $$P09 $$P10 $$P11 $$P12 $$P13 
VAR\$$PAL=$$PAL $$P14 $$P15 $$P16

' Aufrufen des MSI-Installers
VAR\$$MSI=?ws\msiexec.exe 
EXS\$$MSI /i "$$EXE" $$PAL 
' Ermitteln der Process-ID
VAR\$$PID=$v4$
' Auf Ende der Installation warten
WPT\$$PID

' Exitcode ermitteln anhand der PID
PEC\$$PID>$$EXI

' Hier kommt die SELECT CASE Variante vom MPR zum Einsatz
' So kann man beliebig viele EXIT-Codes auswerten

SLC\$$EXI
CSE\0
   MBX\Paket erfolgreich installiert!
CSE\1639
   MBX\Ungültige MSI-Parameter
CEL\
   MBX\Undefinierte Rückgabe: $$EXI
ESL\
@

Post Reply

Return to “Package Robot”

Who is online

Users browsing this forum: No registered users and 6 guests