2016-11-15 5 views
0

Bitte könnte mir jemand mit dem Powershell-Skript helfen, das ich unten geschrieben habe? Ich kann einfach nicht scheinen, um den Installer zu bekommen zu starten: -Powershell MSI Installer-Skript

$msiName = "D:\Folder\Build 1.9.0.39621 Setup.msi” 
Write-Host "Installing msi" 

$argumentlist = "/i [application] /qn /l*v log.txt LOGDIR=`"D:\Log`" SQLSERVER=`"xxx-xxx-xxxx-2`" DBAUTOBACKUP=`"0`" APPPOOLDOMAIN=`"Test-as`" APPPOOLUSER=`"Testservice`" APPPOOLPASSWD=`"xxxxxxx`" ADQUERY=`"Test-as.net`" ADNAME=`"ultra`"" 

$application = $msiName 
$argumentlist = $argumentlist.Replace("[application]",$application) 

Start-Process -FilePath "C:\Windows\System32\msiexec.exe" -ArgumentList $argumentlist -Wait 

Ich habe einfach versucht, aber es wird immer noch nicht. Im Folgenden finden Sie eine Reihe von verschiedenen Möglichkeiten, wie ich versucht habe: -

(1. Versuch)

$argumentList = "/i `"xxxxxx 1.9.0.39641 Setup.msi`"" 

Start-Process -FilePath "C:\Windows\system32\msiexec.exe" -ArgumentList $argumentList 

(2. Versuch)

$argumentList = "/i {0}" -f "xxxxxx 1.9.0.39641 Setup.msi" 

Start-Process -FilePath "C:\Windows\system32\msiexec.exe" -ArgumentList $argumentList 

(3. Versuch)

$argumentList = ("/i {0}" -f "xxxxxx 1.9.0.39641 Setup.msi") 

Start-Process -FilePath "C:\Windows\system32\msiexec.exe" -ArgumentList $argumentList 

(4. Versuch)

$argumentList = ("/i {0}" -f "xxxxxx 1.9.0.39641 Setup.msi") 

Start-Process -FilePath "C:\Windows\system32\msiexec.exe" -ArgumentList "$argumentList" 
+0

Können Sie bitte das Fehlerprotokoll buchen. Ich nehme an, Sie haben ein Problem beim Erstellen der 'Argumentliste', es gibt eine Menge zu entkommen. Ich würde empfehlen, diese Zeichenfolge über den Format-Operator (http://ss64.com/ps/syntax-f-operator.html, z. B. $ argumentlist = ("/ i {0}" -f $ msiName)) zu erstellen. – Moerwald

+0

Danke für Ihre Antwort. Ich habe versucht, es zu vereinfachen und zu tun, was Sie vorgeschlagen haben (siehe meine bearbeitete Originalnachricht), aber es funktioniert immer noch nicht. Es wird nicht einmal den Installer starten. Ich bekomme nur eine Dialogbox Popup, die sagt, wie das Format der Befehlszeile für den Start der MSI sein soll, dh "msiexec/Option [Optionaler Parameter] ........ usw. – ED209

+0

Sie würden Ihre machen Leben Sie viel einfacher, wenn Sie aufhören, Leerzeichen in Ihre Dateinamen zu setzen. –

Antwort

-1

Ich löschte die alte Antwort.

Neue mögliche Lösung

ArgumenList ist ein String-Array, deshalb kann es mehrere Argumente.

Start-Process -FilePath "C:\Windows\system32\msiexec.exe" -ArgumentList "/i", "`"xxx yyyyy.msi`"" 

Ich versuchte es mit einem Installer einschließlich Leerzeichen im Namen, arbeitete an meinem Rechner.

Hoffnung, die

+0

Ich stimme Ihnen zu: scheint, gibt es einige Fluchtproblem hier.Entweichen mit Backslashes scheint in Ordnung, aber vielleicht versuchen '' argumentlist ''? Ich bin nicht sicher. – Djee

+0

Hallo vielen Dank für Ihre Antworten, aber ich kann es immer noch nicht funktionieren Ich habe sogar versucht, es zu vereinfachen Ich habe folgendes versucht: - – ED209

+0

Siehe oben die verschiedenen Möglichkeiten, die ich versucht habe – ED209

0

Hier hilft, was ich in der Vergangenheit verwendet, sollte für Sie arbeiten.

$argumentList = @(
     "-o", 
     "$sourcefile", 
     "-d", 
     "$targetFolder" 
    ) 
start-process -filepath $file -argumentlist $argumentList -wait -nonewwindow -passthru