Powershell:使用动态创建的参数运行 msiexec
Posted
技术标签:
【中文标题】Powershell:使用动态创建的参数运行 msiexec【英文标题】:Powershell: run msiexec with dynamically created parameters 【发布时间】:2012-01-18 12:32:26 【问题描述】:在我的 powershell 脚本中,我需要运行 msiexec 并传递一些参数来初始化它。问题是,如果参数包含空格字符“”,powershell 不会正确执行 msiexec。例如命令:
msiexec /i .\Setup.msi ConnectionString="Initial Catalog=something;Integrated Security=True;Pooling=False"
参数 ConnectionString 包含空格,这会导致 msiexec 没有正确执行,我得到 msiexec 错误代码 1639 - Invalid command line argument。如果我从连接字符串中删除空格,则 msiexec 将正确执行。
有人知道如何解决吗?
【问题讨论】:
你可以试试这个:msiexec /i .\Setup.msi 'ConnectionString="Initial Catalog=something;Integrated Security=True;Pooling=False"' 我试了一下,不幸的是,它不起作用,但谢谢你的想法。 【参考方案1】:这样试试:
Start-Process -FilePath msiexec -ArgumentList / /i, .\Setup.msi, "ConnectionString='Initial Catalog=something;Integrated Security=True;Pooling=False'" -Wait
【讨论】:
【参考方案2】:尝试像这样单引号:
& msiexec.exe /i .\Setup.msi ConnectionString='"Initial Catalog=something;Integrated Security=True;Pooling=False"'
【讨论】:
以上是关于Powershell:使用动态创建的参数运行 msiexec的主要内容,如果未能解决你的问题,请参考以下文章
powershell MS SQL Powershell使用SQLPS创建视图
powershell MS SQL Powershell使用TSQL创建表
powershell MS SQL Powershell使用SQLPS创建表
powershell MS SQL Powershell使用SQLPS创建数据库