从目录中找到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
}
答案 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
}
这当然只是对您正在做的事情的解释。它不包括任何错误处理,检查返回码或远程命令语法等。