Parameter für den Installationspfad bei MSI-Dateien

Alle Fragen rund Antworten rund um die ACMP Client Commands und Container
Antworten
Benutzeravatar
Falaffel
Beiträge: 158
Registriert: Do Feb 04, 2016 5:53 pm

Hallo zusammen,

ich dachte immer, dass ACMP bei Setup- oder MSI-Dateien die möglichen Parameter für die Installation erkennt und anbietet. Ich habe jetzt eine MSI-Datei (Vom Programm Workplacejoin von Microsoft) Da wird im Assistent nur der Parameter ALLUSERS angeboten. Heißt das es gibt keinen Parameter für das Zielverzeichnis in welches das Programm installiert werden soll, oder gibt es noch Standardparameter dafür, die funktionieren.

Ein Kollege schreibt mir gerade "msiexec / i "msi path" TARGETDIR = "C: \ myfolder" / qb". Müsste ich da in ACMP den Parameter TARGETDIR erstellen und den Wert C:\myfolder, oder muss da auch noch "msi path" irgendwie mit rein?

Danke im Voraus
Mit freundlichen Grüßen

Robert-Daniel Steichele
r.steichele@gottlob-rommel.de
http://www.gottlob-rommel.de
twahl
Beiträge: 366
Registriert: Mo Mär 03, 2014 11:21 am

Hallo,

von ACMP werden die öffentlichen Eigenschaften (public properties) ausgelesen und in der Liste angezeigt.
Ein MSI Installer kann aber noch weitere Eigenschaften unterstützen, unter anderem auch private properties die normalerweise schon feste Werte haben.
Wenn Targetdir von dem Installer unterstützt wird, muss im MSI installieren Baustein die Eigenschaft mit den Namen Targetdir und dem Wert hinterlegt werden.
Der im Beispiel genannte <msi path> soll der Pfad zu der per msiexec installierten MSI sein, das wird ja schon über die weiteren Optionen in dem Baustein abgedeckt.
Mit freundlichen Grüßen,

Tobias Wahl
Aagon GmbH
Benutzeravatar
ngottschalk
Beiträge: 293
Registriert: Mi Sep 08, 2010 12:57 pm

Hallo Robert,

ausserdem nicht verwechseln:

1. ACMP liest keine Parameter aus, sondern versucht, den genutzten Installer-Mechanismus (InstallShield, InnoSetup, etc.) zu erkennen und listet dann *Standardparameter* dieser Installer auf; Hierbei muss aber bedacht werden, dass die Entwickler des Setups diese Parameter deaktivieren oder weitere hinzufuegen koennen.
2. Im Falle von Windows Installer Dateien (*.msi) sieht die Sache etwas anders aus, da es sich hierbei um ein offenes Datenbankformat handelt, aus dem die "Public Properties" ausgelesen werden, wie Herr Wahl schon richtig gesagt hat. Hierbei handelt es sich nicht um Parameter (da die Datei keine Ausfuehrbare Datei ist, sondern von "msiexec.exe" installiert wird; Die Dateiselbst ist einer der Parameter fuer "msiexec.exe"), sondern und Datenbankfelder, die dynamisch ueberschrieben werden koennen. Zwar lassen sich alle Daten der MSI veraendern (z.B. mittel des Programms "InstEdit"), aber nur diese bestimmten Felder sind ueber die Kommandozeile ansprechbar, die Namen muessen zwingend in Grossbuchstaben in der Tabelle stehen, anderenfalls wird die Eigenschaft nicht als "public" eingestuft.
3. ACMP liest (meines Wissens nach) nur MSI Dateien aus, die mit einem statischen Pfad hinterlegt sind (ausser im Paket Wizard), sodass das ggf. der Grund sein koennte, warum Nichts angezeigt wird. Zum Test einfach die Datei lokal ablegen, ein "Install MSI" Befehl im Script hinzufuegen, die lokale Kopie manuell auswahlen und so die verfuegbaren Properties auslesen lassen:)

EDIT: Achso, und der "msi path" aus der Email vom Kollegen ist der Pfad zur MSI Datei; Wie schon geschrieben wird nicht die MSI selbst ausgefuehrt, sondern via msiexec.exe aufgerufen, sodass ein Installationsaufruf z.B. wie folgt aussieht:

"C:\Windows\System32\msiexec.exe" /i "C:\Temp\installer.msi" TARGETDIR="C:\Installdir" /qn /norestart
msiexec --> Ausfuehrbare Datei, /i = "Install" + Dateiname (ein Parameter fuer MSIexec mit zwei Werten, Datei + Properties), TARGETDIR --> Public Property override (WERT fuer /i), /qn --> no UI (Parameter fuer MSIexec), /norestart --> no reboot (Parameter fuer MSIexec)
(einfach mal "msiexec /?" aufrufen)
Mit freundlichen Grüßen

Niklas Gottschalk (gottschalk@zoller-usa.com)
IT Systems Administrator
Zoller Inc.
Antworten