Это поможет вам понять, что здесь происходит. Я бы написал это примерно так:
Объявление исходного каталога:
$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
}
Это, конечно, просто объяснение того, что вы делаете. Он не включает обработку ошибок, проверку кодов возврата или удаленный синтаксис команд и т. Д. И т. Д.