【发布时间】:2018-02-27 14:40:57
【问题描述】:
我正在尝试使用 splatting 安装 .MSI:
$InstallerArgs @{
"DATABASENAME" = "my_database";
"LOCALIP" = "127.0.0.1";
"USERNAME" = "username1";
"/i" = "C:\Files\Installer.msi";
}
然后我打电话给Start-Process:
Start-Process -FilePath msiexec.exe -ArgumentList @InstallerArgs -Wait
这会返回错误:Missing an argument for parameter 'ArgumentList'. Specify a parameter of type 'System.String[]' and try again.
Start-Process不能使用splatting吗?
【问题讨论】:
-
可以通过
Start-Process使用喷溅,但您不能以这种方式为 msi 安装程序提供选项。 -
顺便说一句,对于那些想知道这里是否需要使用
Start-Process的人:它是,即确保同步(阻塞)在-Wait开关的帮助下执行。msiexec,尽管拥有丰富的 CLI,但不是 控制台应用程序,因此默认情况下异步执行(并且始终没有控制台输出) . -
如果您不是从脚本运行它,而只是想运行命令从 PowerShell 提示符卸载某些东西,我更喜欢异步,因为我得到了提示并且不必等待卸载完成。
标签: powershell