2012-01-18 85 views
1

在我的powershell腳本中,我需要運行msiexec並傳遞幾個參數來初始化它。問題是,如果參數包含空格字符「」,powershell不會正確執行msiexec。例如命令:Powershell:運行msiexec動態創建參數

msiexec /i .\Setup.msi ConnectionString="Initial Catalog=something;Integrated Security=True;Pooling=False" 

參數ConnectionString中包含空格,這將導致該MSIEXEC沒有被正確執行,我得到MSIEXEC錯誤代碼1639 - 無效的命令行參數。如果我從連接字符串中刪除空格,則msiexec會正確執行。

有沒有人有一個想法如何解決它?

+0

你可以試試這個:MSIEXEC/I \的setup.msi「的ConnectionString =「初始目錄=東西; Integrated Security = True; Pooling = False「' – 2012-01-18 12:34:06

+0

我嘗試一下,不幸的是,它不起作用,但是謝謝你的想法。 – Mikee 2012-01-18 12:42:16

回答

3

嘗試這種方式:

Start-Process -FilePath msiexec -ArgumentList//i, .\Setup.msi, "ConnectionString='Initial Catalog=something;Integrated Security=True;Pooling=False'" -Wait 
+0

這工作,謝謝! – Mikee 2012-01-18 15:15:00

0

嘗試單引號這樣的:

& msiexec.exe /i .\Setup.msi ConnectionString='"Initial Catalog=something;Integrated Security=True;Pooling=False"'