使用PowerShell脚本查找文件,然后启动引用该文件的命令?

时间:2019-10-03 22:49:03

标签: powershell

我正在尝试在PowerShell中编写一个脚本,该脚本将在文件夹中搜索特定的msi文件(子文件夹的位置会有所不同),然后运行安装命令,引用该文件以及其他文件在同一目录中。我们的L1服务台人员将使用该工具来运行通过SCCM分配的软件的安装,可能使用的命令行变量与SCCM所运行的命令行变量不同。

尝试了不同的代码组合,无法安装该应用程序。

这在查找软件时效果很好

Get-ChildItem -Path C:\Windows\ccmcache -Recurse -Filter softwarename.msi

每个部分都不起作用

$Path = Get-ChildItem -Path C:\Windows\CCMCache -Recurse -Filter Something.MSI

ForEach ( $Installer in ( Get-ChildItem -Path $Path.DirectoryName -Filter *.MSI ) ) {

Start-Process -Wait -FilePath C:\windows\system32\msiexec.exe -ArgumentList "/i $Installer.FullName"
}

我基本上想做这样的事情,使用找到msi文件的目录进行安装:

msiexec / i软件名.msi / q / norestart

1 个答案:

答案 0 :(得分:2)

我唯一看到的错误是您通常不能在不添加$()的情况下引用字符串内部对象的属性:

const externalLink = document.getElementById("external")
externalLint.href += param

为什么不直接运行msiexec?

Start-Process -Wait -FilePath C:\windows\system32\msiexec.exe -ArgumentList "/i $($Installer.FullName)"