Mehrere MSI-Dateien mit einer Setup.inf installieren

Unterstützung und Diskussion zur Installation von Empirum (Agentenverteilung, Depotserver ...)

Moderator: MVogt

Post Reply
User avatar
tgrosch
Posts: 602
Joined: 14. Nov 2007, 16:34
Location: Fulda
Contact:

Mehrere MSI-Dateien mit einer Setup.inf installieren

Post by tgrosch » 17. Aug 2011, 15:37

Hallo zusammen,

wir setzen eine Software ein, die sage und schreibe sieben(!) MSI-Dateien hintereinander benötigt. Obwohl es am Ende eigentlich eine Webanwendung ist... Nunja, über die Sinnhaftigkeit möchte ich hier nicht philosophieren.

Ich könnte einfach alle 7 MSI-Dateien in einzeln paketieren und dann die Aufrufe in der richtigen Reihenfolge hintereinandersetzen.

Nicht 100% klar ist mir dieser Bereich:

[SET:ChangeMSISourcelist]
ReplaceRegValue (HKCR,"Installer\Products\%V_MSIInstallerID%\Sourcelist","LastUsedSource","\\%EmpirumServer%","\\%%EmpirumServer%%", 1)
ReplaceRegValue (HKCR,"Installer\Products\%V_MSIInstallerID%\Sourcelist\Net","1","\\%EmpirumServer%","\\%%EmpirumServer%%", 1)

Die Variable wird ja unter [Environment] definiert. Diese Aufrufe müsste ich auch für jede MSI-Datei mit in das eine Paket bauen. Kann mir jemand erklären, was diese Einträge genau bewirken?

Wie würdet ihr vorgehen? Alles in einer setup.inf zusammenfassen oder lieber einzelne Pakete erstellen und dann mit einer Softwareklasse arbeiten?
Viele Grüße

Tobias
---
Empirum Echtsystem: v19 - 19.0.1 - Win 2012 R2 mit EPE 4.7.3 und UEM Agent 1905.1
Empirum Testsystem: v19 - 19.0.1 - Win 2012 R2 mit EPE 4.7.5 und UEM Agent 1906.1
Workplace Management Echtsystem: ServiceStore 9.1.0.2532 - Win 2012 R2
Workplace Management Testsystem: ServiceStore 9.1.0.2532 - Win 2016
MDM: Silverback 18.0.3.27
DB-Server: Win 2012 R2 mit SQL 2014

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 8099
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: Mehrere MSI-Dateien mit einer Setup.inf installieren

Post by Hendrik_Ambrosius » 17. Aug 2011, 17:29

Das ist für die interne Repair-Funktion von MSI: Wenn irgendetwas nicht stimmt mit der Anwendung springt die an und sucht die Installationsdateien an der dort eingetragenen Stelle. Damit das bei Standortwechsel immer der nächste Empirum Depotserver ist wird die %EmpirumServer% Variable dort eingetragen.
Ist also zu empfehlen.
Ich würde ein grosses Paket mit mehreren MSI-Aufrufen machen.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

lennu
Posts: 581
Joined: 01. Aug 2005, 16:20
Location: Bonn
Contact:

Re: Mehrere MSI-Dateien mit einer Setup.inf installieren

Post by lennu » 18. Aug 2011, 15:49

Hallo,

die Funktion ist allerdings unter Windows XP und beim Legacy Agent ziemlich witzlos, da bei Auslösung die Umgebungsvariable %EmpirumServer% zwar richtig ausgelesen wird, allerdings ein weiterer Regkey erstellt wird (HKCR,Installer\Products\%V_MSIInstallerID%\Sourcelist\Net,2 bzw 3 bzw 4), der wiederum dann die aufgelöste Variable enthält. Wir haben uns dafür eine kleines Programm geschrieben, welches den gesamtem Sourcelist-Tree durchgrast und korrigiert (war aber kein Spaß).

Ansich ist der Key nur wichtig, wenn man einen Rechner in den Bereich eines anderen Depots umzieht und er die Daten dann von dort holen soll.

Viele Grüße,
Lennu
Lennart Freyberg
Sysadmin
Deutsche Steinzeug Cremer & Breuer AG

User avatar
tgrosch
Posts: 602
Joined: 14. Nov 2007, 16:34
Location: Fulda
Contact:

Re: Mehrere MSI-Dateien mit einer Setup.inf installieren

Post by tgrosch » 18. Aug 2011, 16:00

Hallo Lennu,
lennu wrote:Ansich ist der Key nur wichtig, wenn man einen Rechner in den Bereich eines anderen Depots umzieht und er die Daten dann von dort holen soll.
... oder wenn ich den Advanced Agent einsetze?

Wenn ich das Posting von Hendrik Ambrosius richtig verstehe würde das ja bewirken, dass er nicht die MSI-Dateien lokal auf C:\EmpirumAgent\Packages\... sucht, sondern auf dem %Empirumserver%. U.U. möchte die MSI-Routine ja etwas nachinstallieren und der lokale Cache des Agenten ist bereits wieder geleert.
Viele Grüße

Tobias
---
Empirum Echtsystem: v19 - 19.0.1 - Win 2012 R2 mit EPE 4.7.3 und UEM Agent 1905.1
Empirum Testsystem: v19 - 19.0.1 - Win 2012 R2 mit EPE 4.7.5 und UEM Agent 1906.1
Workplace Management Echtsystem: ServiceStore 9.1.0.2532 - Win 2012 R2
Workplace Management Testsystem: ServiceStore 9.1.0.2532 - Win 2016
MDM: Silverback 18.0.3.27
DB-Server: Win 2012 R2 mit SQL 2014

lennu
Posts: 581
Joined: 01. Aug 2005, 16:20
Location: Bonn
Contact:

Re: Mehrere MSI-Dateien mit einer Setup.inf installieren

Post by lennu » 18. Aug 2011, 16:22

Hallo,

wenn Du die Daten aus dem lokalen Depot löschst (was man nur machen sollte, wenn keine benutzerspezifischen Teile enthalten sind), sollte man die Einträge natürlich auch korrigieren.

Grüße,
Lennu
Lennart Freyberg
Sysadmin
Deutsche Steinzeug Cremer & Breuer AG

kkraoul
Posts: 8
Joined: 09. Dec 2011, 13:24
Contact:

Re: Mehrere MSI-Dateien mit einer Setup.inf installieren

Post by kkraoul » 09. Dec 2011, 14:45

ich habe eine frage wenn man mehere MSI-Datei in einer setup.inf installieren will, soll man mehere [environment] haben ?
weil momentan benutze ich nur ein und zwar für die erste MSI und es lauf nicht optimal.
der installierte die 5 Datei richtig aber der reinstalliert die n mal bis er müde ist :(.
dann steht erfolgreich installiert aber das ganze dauert zu lange.

[Environment]
V_MSIInstallerID=362B3F3C566234C4CB9C4E9740EE34AB
ReInstSuccessMessage1031=Die Konfiguration wurde erfolgreich abgeschlossen.
ReInstSuccessMessage1031_1=Die Konfiguration wurde abgeschlossen.
ReInstSuccessMessage1033=Configuration completed successfully.
ReInstSuccessMessage1033_1=Configuration completed.
MSILogFile=%Temp%\MSI_%ProductName%.%Version%.%Revision%.log
CommonSetupDir=%CommonFilesDir%\Setup%SetupBits%
V_MachineValuesPath=\\%EmpirumServer%\Values$\MachineValues\%DomainName%
V_UserValuesPath=%HKLM,"Software\matrix42\Software Depot","HomeServer"%\Values$\UserValues\%UserDomain%

kan ich so machen ?

[Environment:1]
V_MSIInstallerID=aaaaaaaaaaa
ReInstSuccessMessage1031=Die Konfiguration wurde erfolgreich abgeschlossen.
ReInstSuccessMessage1031_1=Die Konfiguration wurde abgeschlossen.

[Environment:2]
V_MSIInstallerID=bbbbbbbbbbbb
ReInstSuccessMessage1031=Die Konfiguration wurde erfolgreich abgeschlossen.
ReInstSuccessMessage1031_1=Die Konfiguration wurde abgeschlossen.
[Environment:3]
V_MSIInstallerID=cccccccc
ReInstSuccessMessage1031=Die Konfiguration wurde erfolgreich abgeschlossen.
ReInstSuccessMessage1031_1=Die Konfiguration wurde abgeschlossen.
....

Danke

lennu
Posts: 581
Joined: 01. Aug 2005, 16:20
Location: Bonn
Contact:

Re: Mehrere MSI-Dateien mit einer Setup.inf installieren

Post by lennu » 09. Dec 2011, 16:25

Hallo,

nein, mehrere Environments machen keinen Sinn - da kannst Du auch gleich die unendliche Geschichte als Kommentar einfügen (will damit sagen, dass das einfach ignoriert wird). Mehrere MSIs in einer Datei funktionieren schon richtig, man muss halt wissen, was man tut.

Hier ein Beispiel (einfach so zusammengeschrieben, kein Empirum-Code!):

Code: Select all

[Environment]
Custom_MSI_GUID_1=123456123456123456123456
Custom_MSI_InstallerID_1=abcdefabcdefabcdefabcdef
Custom_MSI_LOGFILE_1=erstes_msi.log
Custom_MSI_GUID_2=654321654321654321654321
Custom_MSI_InstallerID_2=fedcbafedcbafedcbafedcba
Custom_MSI_LOGFILE_2=zweites_msi.log

[Set:Install]
IF DOESREGKEYEXIST("HKLM,......\%Custom_MSI_GUID_1%,UninstallString) == "1" Then "RepairMSI_1" Else "InstallMSI_1" ENDIF
IF DOESREGKEYEXIST("HKLM,......\%Custom_MSI_GUID_2%,UninstallString) == "1" Then "RepairMSI_2" Else "InstallMSI_2" ENDIF

[RepairMSI_1]
Call MsiExec /Fvomus "%SRC%\paket1.msi" /qr /L "%Custom_MSI_LOGFILE_1%"
...Überprüfung des ErrorLevels...

[InstallMSI_1]
Call MsiExec /I "%SRC%\paket1.msi" /qr /L "%Custom_MSI_LOGFILE_1%"
...Überprüfung des ErrorLevels...

[RepairMSI_2]
Call MsiExec /Fvomus "%SRC%\paket2.msi" /qr /L "%Custom_MSI_LOGFILE_2%"
...Überprüfung des ErrorLevels...

[InstallMSI_2]
Call MsiExec /I "%SRC%\paket2.msi" /qr /L "%Custom_MSI_LOGFILE_2%"
...Überprüfung des ErrorLevels...

[SET:ChangeMSISourcelist]
ReplaceRegValue (HKCR,"Installer\Products\%Custom_MSI_InstallerID_1%\Sourcelist","LastUsedSource","\\%EmpirumServer%","\\%%EmpirumServer%%", 1)
ReplaceRegValue (HKCR,"Installer\Products\%Custom_MSI_InstallerID_1%\Sourcelist\Net","1","\\%EmpirumServer%","\\%%EmpirumServer%%", 1)
ReplaceRegValue (HKCR,"Installer\Products\%Custom_MSI_InstallerID_2%\Sourcelist","LastUsedSource","\\%EmpirumServer%","\\%%EmpirumServer%%", 1)
ReplaceRegValue (HKCR,"Installer\Products\%Custom_MSI_InstallerID_2%\Sourcelist\Net","1","\\%EmpirumServer%","\\%%EmpirumServer%%", 1)
Fehlt der Uninstall-Bereich, dort muss man natürlich auch alle MSI-Dateien berücksichtigen...

Kann man wesentlich eleganter (verschachtelter) machen, um sich etliche Zeilen Code zu ersparen - aber dafür muss man die Grundzüge erst einmal verstanden haben...

Grüße,
Lennu
Lennart Freyberg
Sysadmin
Deutsche Steinzeug Cremer & Breuer AG

kkraoul
Posts: 8
Joined: 09. Dec 2011, 13:24
Contact:

Re: Mehrere MSI-Dateien mit einer Setup.inf installieren

Post by kkraoul » 09. Dec 2011, 19:14

Danke Lennu hat supper funktionniert die loop reinstallation ist weg.

kkraoul
Posts: 8
Joined: 09. Dec 2011, 13:24
Contact:

Re: Mehrere MSI-Dateien mit einer Setup.inf installieren

Post by kkraoul » 13. Dec 2011, 15:09

jetzt hat das Paket eine andere Probleme.
Pakete wird nach der Installation mit dem Status "grün" gesetzt, die Installation mit erfolgreich beendet. nach einer erneuten manuellen Inventarisierung bei W7 x64 ist der Status nach der nächsten Inventarisierung wieder ändert als gelb und nicht installiert
bei x86 bleibt die Inventar dauerhaft richtig.

Hat jemand eine Idee Woran es liegen kann ?

Post Reply

Return to “Installation und Verteilung”

Who is online

Users browsing this forum: No registered users and 6 guests