2

Matrix42 Empirum Setup.inf Grundlagen

Wer die Matrix42 Empirum Softwareverteilung nutzt, muss zwangsweise mit der Empirum Setup.inf Datei arbeiten. In dieser Datei wird das Softwarepaket konfiguriert und die Installations- bzw. Deinstallationsroutine hinterlegt.

Wie der Aufbau der Empirum Setup.inf funktioniert, und wie diese Datei abgearbeitet wird, seht ihr in diesem Beitrag.

janjf93 / Pixabay

 

 

Grundlagen zur Empirum Setup.inf

Eine Installation ist grundsätzlich in zwei Bereiche aufgeteilt. Den Maschinenteil gibt es immer, noch dazu kann es aber auch einen Benutzerteil geben. Der Maschinenteil wird unter dem Benutzer “SYSTEM” einmalig auf dem Computer ausgeführt. Wenn man noch Registrywerte unter “Current User” hinzufügen will, oder Verknüpfungen auf dem Desktop, dann wird der Benutzerteil benötigt. Dieser wird immer ausgeführt, wenn sich ein neuer Benutzer am Computer anmeldet. Damit der Benutzerteil ausgeführt wird, benötigt man den Schalter “/AW“. Hierzu gibt es weiter unten die nötigen Informationen.

Empirum Setup.inf Grundlagen

 

Ablauf in der Empirum Setup.inf

Der grundsätzliche Ablauf in der Setup.inf erfolgt immer von oben nach unten. Es kann aber mit Sprungbefehlen gearbeitet werden, wie beispielsweise in einer Batch – Datei.
Hier gibt es 2 Möglichkeiten um zu springen:

 

Möglichkeit 1:

#Sektion, FLAG
(Damit kann man von jeder Stelle im Script in eine andere Sektion springen. Natürlich kann amn sogenannte “Flags” mitgeben)

FLAG

Bedeutung

ADMIN

Nur ausführen, wenn Administrator angemeldet ist

CLIENT

Nur ausführen, wenn Benutzer angemeldet ist

DELETE

Nur bei Deinstallation ausführen

DONTDELETE

Wird nur bei Installation ausgeführt

MACHINE

Wird nur im Maschinenteil ausgeführt

SHARED

Wird nur bei Shared Windows-Installation ausgeführt

WINDOWS32

Nur ausführen, wenn System ist 32bit Windows

WINDOWS64

Nur ausführen, wenn System ist 64bit Windows

 

Möglichkeit 2:

If <Bedingung> Then “Sektion1” Else “Sektion2” EndIf
(In IF-Abfragen können Sprünge in andere Sektionen gemacht werden, aber man kann keine Befehle ausführen)

 

Wichtig:

Nachdem ein Abschnitt abgearbeitet wurde, wird die Routine da fortgesetzt, wo die Sektion aufgerufen wurde!
Bei einer Deinstallation ist zu beachten, dass das Script bzw. die Sektion von unten nach oben abgearbeitet wird. Außerdem muss bei einer Installation vor den Befehlen ein “-” (Minus) stehen. Ausnahmen sind vor einer “If-Abfrage” oder vor “#Sektion

Beispiel:

[Set:Uninstall]
If %ErrorLevel% == "3010" Then "RebootRequired" EndIf
-Call MsiExec /X {YourMsiGUID} REBOOT=REALLYSUPPRESS /qb
-AddMeter -1

 

 

Wichtige Abschnitte in der Empirum Setup.inf

[SetupInfo]

In der SetupInfo stehen die Informationen zu Autor, Datum, Software und sonstige Informationen. Generell ist dieser Bereich wirklich nur zur Information gedacht. Von Bedeutung in diesem Abschnitt ist der Schalter “Command line options“. Dieser steuert die Aufrufparameter der Setup.inf – Datei. Mit dem Schalter “/S1” wird die Anzeige / Sichtbarkeit der Installation gesteuert. Wenn der Schalter “/AW” noch gesetzt ist, weis der Agent, dass es noch einen Benutzerteil gibt.

[SetupInfo]
Author                  = huberj
CreationDate            = 13.09.2017
InventoryID             = 
Description             = Notepad++
Method                  = exe
Tested on               = Windows 10 x64
Dependencies            = keine
Command line options    = /S0 /AW
Last Change             = 
Build                   =

 

[Application]

In diesem Teil wird der Name der Software, Hersteller und Version hinterlegt. (Sehr wichtig!)
Noch dazu wird das Hintergrundbild und Beschriftung gesetzt werden.

[Application]
ProductName=Notepad++
DeveloperName=Team Notepad
Version=7.0
Revision=0
SetupName=%ProductName% %Version% %SetupWizard%
Text1="%ProductName% %Version%",         Arial,           30, , 2170F3, 4,    , LEFT BOLD ITALIC
Text2="%DeveloperName%",                 Arial,           24, , 2170F3, 4,    , LEFT BOLD ITALIC
Text8="%Company%",                       Arial,           18, , 2170F3, 4,  10, RIGHT BOLD ITALIC
Text9="%InstallationFor% %WindowsUser%", Arial,           16, , 2170F3, 4, -18, BOTTOM ITALIC LEFT
BackgroundColor=EFEFEF,000000
CopyDialogRect=0%, 0%, 100%, 100%, HCENTER VCENTER

; Register all installations in common registry key
UserKeyName=$Matrix42Packages$\%DeveloperName%\%ProductName%
MachineKeyName=$Matrix42Packages$\%DeveloperName%\%ProductName%\%Version%
UninstallKeyName=Matrix42 - %DeveloperName% %ProductName% %Version%
UninstallDisplayName=Matrix42 - %DeveloperName% %ProductName% %Version%
UninstallString=%ReinstallString% /U
ReinstallString="%CommonSetupDir%\Setup.exe" "%App%\%SetupInfDir%\Setup.inf"
UninstallOptions=NOREMOVE NOREPAIR NOMODIFY
ReinstallMode=1
SrcDir=..

ApplicationDir=%ProgramFilesDir%\%ProductName%

SetupInfDir=Install
DataDir=%Personal%
AskUninstallOld=1
ShellLinks=1
CommonShellLinks=0
Reboot=0
PreventExternalReboot=1
StartServicesOnReboot=0
CallTimeOut=3600
DisableCancelButton=1
ShowEndMessage=1

 

[Product]

Im Product – Abschnitt ist die eignetliche Installation bzw. Deinstallation abgebildet.

[Product]
AddMeter -1
#Set:Product, DONTDELETE
#Set:Uninstall, DELETE
#Reg:Product
-AddMeter -1

Die Benennung der Sektionen ist sehr wichtig, hier die Namensgebung:

#Set:<NAME>

“normale” Sektionen

#Reg:<NAME>

Registrierungseinträge

#Ini:<NAME>

Einträge in INI-Dateien

#Config.sys:<NAME>

Einträge in Config.sys – Dateien

#Bat:<NAME>

Einträge in eine Batch – Datei

#ODBC<Komponentenname>:<NAME>

ODBC Verbindungen

#Shell:<NAME>

Verknüpfungen

#Security:<NAME>

Berechtigungen User, Gruppen

#IP<Komponentenname>:<NAME>

IP – Konfiguration

 

 

Die wichtigsten Befehle

Call

Ruft einen Befehl auf (Call “%SRC%\setup.exe”)

AddMeter

Statusbalken anpassen

KillProcess

Beendet einen Prozess

AskKillProcess

Fordert Benutzer auf, ein Programm zu beenden

Del

Löscht einen Datei

Deltree

Löscht eine Ordnerstruktur

If <bendingung> Then <sektion> Else <sektion> EndIf

IF – Anweisung

HKLM, Software\Test,TestSchluessel,”Testeintrag”

Erstellt Registrierungsschlüssel

ErrorLogMessage

Schreibt Eintrag in das SetupErrorLog

Abort

Bricht mit dem Status “Failture” ab

Exit

Bricht mit dem Status “Success” ab

 

 

Beispiel einer Empirum Setup.inf – Datei

Da dieser Beitrag sonst noch länger wird 😉 , ist das Beispiel einer solchen Datei hier zu finden:

Setup.inf Beispiel
Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 2 comments
sidebar