Installationsabfolge mit PowerShell

Lauch86

Lt. Junior Grade
Registriert
Mai 2013
Beiträge
298
Hallo zusammen,

ich möchte mit PowerShell drei Tools nacheinander installieren lassen. Das sieht bei mir momentan so aus:

Code:
$FTDICheck = "C:\TEMP\FTDICheck.exe"
$TST = "C:\TEMP\49598810001ag.msi"
$FTDILatency = "C:\TEMP\FTDILatency.exe"

Start-Process -FilePath "$FTDICheck" -Wait
Start-Process msiexec.exe -Wait -ArgumentList '"/i "$TST" /quiet"'
Start-Process -FilePath "$FTDILatency" -Wait

FTDICheck und FTDILatency funktionieren soweit. Lediglich die .msi lässt sich nicht silent installieren. Führe ich nur diese Zeile aus passiert einfach gar nichts. Gebe ich den Pfad statt der Variable ein erscheint das Windows Installer Fenster mit den ganzen Installationsoptionen.

Habt ihr einen Tipp für mich?
 
Was gibt die "C:\TEMP\49598810001ag.msi" /? aus? Allenfalls über cmd.exe /c "" anwerfen?
 
/qn hatte ich versucht. Ist aber das selbe Ergebnis. /passive auch. Bei /? werden mir die Standard Parameter angezeigt, wo ein /i und /quiet dabei sind. Ohne Parameter startet die Installation auch, allerdings eben nicht silent. Es muss irgendas mit -ArgumentList sein.
 
ich mache das immer so:
msiexec /i C:\setup.msi /l*v C:\msilog.txt /qn /norestart
 
Hi,
ohne es jetzt gerade gegentesten zu können, fallen mir noch folgende Varianten ein. Vielleicht einen Versuch wert.

PowerShell:
Start-Process msiexec.exe -Wait -ArgumentList '"/i "$TST" /quiet"'

# double quotes w/ escaping
Start-Process msiexec.exe -Wait -ArgumentList "/i `"$TST`" /quiet"
# string array
Start-Process msiexec.exe -Wait -ArgumentList "/i","$TST","/quiet"
 
Mit dem Call-Operator & statt Start-Process das gleiche Problem?

Edit: Im Endeffekt wie von @XN04113 vorgeschlagen.
 
Da stimmt was nicht mit der ArgumentList:
Start-Process msiexec.exe -Wait -ArgumentList '"/i "$TST" /quiet"'
Die Anführungszeichen sind...strange... du hast "/i " , dann $TST ohne und dann " /quiet" wieder in Anführungszeichen... Versuch mal die unterste Variante von @.courson
Oder
PowerShell:
Start-Process msiexec.exe -Wait -ArgumentList '/i $TST /quiet'
diese (solange du keine Leerzeichen (in den einzelnen Paramtern) hast, braucht es auch keine Anführungszeichen bei den MSI-Argumenten).
 
Leider funktioniert keiner der o. g. Tipps bei mir.

Bei
Code:
Start-Process msiexec.exe -Wait -ArgumentList "/i","$TST","/quiet"

beomme ich:

Code:
Start-Process : Das Argument für den Parameter "ArgumentList" kann nicht überprüft werden. Das Argument ist NULL oder leer, oder ein Element der Argumentauflistung enthält einen NULL-Wert.
Geben Sie eine Auflistung an, die keine NULL-Werte enthält, und führen Sie dann den Befehl erneut aus.
In Zeile:1 Zeichen:47
+ Start-Process msiexec.exe -Wait -ArgumentList "/i",$TST,"/quiet"
+                                               ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Start-Process], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.StartProcessCommand

Bei "msiexec.exe /i..." nimmt er den Befehl zwar an aber nichts passiert.

EDIT:
Hat sich erledigt. Hat geklappt. War nur zu ungeduldig. Danke schön!
 
  • Gefällt mir
Reaktionen: Korben2206
Zurück
Oben