Mehrere MSI-Dateien mit einer Setup.inf installieren
Moderator: MVogt
Mehrere MSI-Dateien mit einer Setup.inf installieren
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?
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
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
-
Hendrik_Ambrosius
- Moderator

- Posts: 8099
- Joined: 13. Dec 2004, 23:10
- Location: Adendorf/Lüneburg
Re: Mehrere MSI-Dateien mit einer Setup.inf installieren
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.
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.
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.
Re: Mehrere MSI-Dateien mit einer Setup.inf installieren
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
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
Sysadmin
Deutsche Steinzeug Cremer & Breuer AG
Re: Mehrere MSI-Dateien mit einer Setup.inf installieren
Hallo Lennu,
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.
... oder wenn ich den Advanced Agent einsetze?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.
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
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
Re: Mehrere MSI-Dateien mit einer Setup.inf installieren
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
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
Sysadmin
Deutsche Steinzeug Cremer & Breuer AG
Re: Mehrere MSI-Dateien mit einer Setup.inf installieren
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
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
Re: Mehrere MSI-Dateien mit einer Setup.inf installieren
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!):
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
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)
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
Sysadmin
Deutsche Steinzeug Cremer & Breuer AG
Re: Mehrere MSI-Dateien mit einer Setup.inf installieren
Danke Lennu hat supper funktionniert die loop reinstallation ist weg.
Re: Mehrere MSI-Dateien mit einer Setup.inf installieren
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 ?
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 ?
Who is online
Users browsing this forum: No registered users and 6 guests