我被告知我必须将PSADT部署到Windows机器上。我不想运行完整的.exe,而是希望部署单独的MSI文件。
$msi = @("$dirFiles\iTunes 64iTunes6464.msi", "$dirFiles\AppleApplicationSupport64.msi", "$dirFiles\Bonjour64.msi")
foreach($_ in $msi)
{Start-Process -FilePath msiexec -ArgumentList /i, $_, /passive -Wait}
它正在拾取阵列并且正在循环,但我在每个文件上都收到参数错误。 PS的新功能和每个应用程序的各种不同要求完全让我失望。
我遗失了一些愚蠢的东西,还是我用脚本构造咆哮了错误的树?
答案 0 :(得分:1)
-ArgumentList
采用字符串或字符串数组 - 因此您需要使用类似下面的内容。
$ToInstall = ("iTunes 64iTunes6464.msi", "AppleApplicationSupport64.msi", "Bonjour64.msi")
foreach($Msi in $ToInstall){
Start-Process -FilePath 'msiexec' -ArgumentList "/i ""$($dirFiles + '\' + $Msi)"" /passive" -Wait
}
目前它正在尝试转换后的东西
-ArgumentList
成一个字符串,但不知道在哪里停止。
请告诉我这是否适合您。