Powershell:使用动态创建的参数运行msiexec

时间:2012-01-18 12:32:26

标签: scripting powershell msiexec

在我的powershell脚本中,我需要运行msiexec并传递一些参数来初始化它。问题是,如果参数包含空格字符“”,则powershell不会正确执行msiexec。例如命令:

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

参数ConnectionString包含空格,这导致msiexec未正确执行,我得到msiexec错误代码1639 - 无效的命令行参数。如果从连接字符串中删除空格,则会正确执行msiexec。

有人知道如何解决它吗?

2 个答案:

答案 0 :(得分:3)

尝试这种方式:

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

答案 1 :(得分:0)

尝试单引号如下:

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