通过Powershell安装的MSIExec

时间:2019-03-07 03:50:39

标签: powershell windows-installer msiexec

从目录中找到MSI文件的列表,然后远程或本地安装在给定的PC上。我希望能够运行一个脚本,该脚本将在给定目录中按1比1安装8个独立的MSI文件。我找到了该脚本并认为它可以正常工作,但是我感觉好像缺少了某些东西吗?

foreach($_msiFiles in 
($_msiFiles = Get-ChildItem $_Source -Recurse | Where{$_.Extension -eq ".msi"} |
 Where-Object {!($_.psiscontainter)} | Select-Object -ExpandProperty FullName)) 
{
    msiexec /i $_msiFiles /passive
} 

1 个答案:

答案 0 :(得分:1)

这将帮助您了解此处的情况。我会这样写:

声明源目录:

$source = “\\path\to\source\folder”

将每个子.msi对象放入一个数组:

$msiFiles = Get-Childitem $source -File -recurse | Where-Object {$_.Extension -eq “.msi”}

迭代数组以运行每个.msi:

Foreach ($msi in $msiFiles) {

Msiexec /I “$($msi.FullName)” /passive

}

这当然只是对您正在做的事情的解释。它不包括任何错误处理,检查返回码或远程命令语法等。