【发布时间】:2018-12-29 03:01:22
【问题描述】:
我正在尝试编写一个我从 python 脚本启动的 powershell 脚本,该脚本将允许我通过并安装包含在某个文件夹中的每个 .msi 文件。
这是我目前所拥有的:
$msiFiles = Get-ChildItem -Path "***PATH TO FOLDER***" -Recurse -Include *.msi
foreach($file in $msiFiles)
{
Write-Host "$file is being installed"
Start-Process "msiexec.exe" -arg "/I $file /qb ADDLOCAL=ALL ALLUSERS=TRUE" -Wait
Write-Host "$file is finished being installed"
}
我想以静默模式安装这些 msi,因此我看不到或不需要 ant GUI 交互。当它要安装msi时,我会从安装程序中弹出一个带有所有可能用于安装东西的命令,但它实际上并没有安装它。
在静默模式下安装这些的正确命令是什么?
【问题讨论】:
-
在 Start-Process 行之前的代码中执行此操作
Write-Host "/I $file /qb ADDLOCAL=ALL ALLUSERS=TRUE"。请在您的问题中输入一份输出样本。 -
你试过搜索吗?我想不是很难找到。看看这个来自多项式stackoverflow.com/questions/8560166/… 的答案
-
@Theo 是的,我已经尝试使用该链接中的步骤,但仍然得到我上面描述的相同弹出窗口
-
请注意,ALLUSERS 应设置为 0 或 1(或 2 与 MSIINSTALLPERUSER),而不是 TRUE。此外,ADDLOCAL=ALL 可能好也可能不好,具体取决于给定 .msi 文件中的功能。 (不过,这些都不是语法无效的,所以不会导致你问的问题。)
-
不是这样的答案,但我只想告诉您:The Windows Installer PowerShell Module on github.com - 它提供 MSI cmdlet(向下滚动以获取描述,使用发布标签供下载或阅读说明)。我还没有真正测试过它,但它来自Heath Stewart - Microsoft 高级软件工程师 (github)。
标签: python powershell windows-installer