如何在 PowerShell 中使用批处理文件安装 MSI 文件?

假设我们有一个 MSI 文件,我们需要使用 PowerShell 在远程计算机上安装 MSI 文件,但该 MSI 文件应与批处理文件一起部署,并应使用 PowerShell 执行。

在这个例子中,我们有一个 7-zip MSI 文件和批处理文件,我们将首先编写如下所示的安装说明。

msiexec /i "C:\temp\7z1900-x64.msi" /quiet

我们的安装 MSI 包位于 C:\temp 位置。我们将上述指令保存在7ZipInstaller.bat 文件中。

现在我们需要调用批处理文件,如下所示。− Wait将等待批处理文件首先执行,然后移动到下一条指令(如果有)并且 − NoNewWindow

Start-Process C:\Temp\7zipInstaller.bat -Wait -NoNewWindow

运行上述命令后,它将在指定位置安装 7zip。您可以直接在Start-Process 中传递这些指令来执行 MSI,但是如果我们需要执行批处理文件,那么这是一个好方法,因为我们也可以远程调用这个批处理文件。以下命令适用于远程计算机。

Invoke-Command -ComputerName TestMachine1, TestMachine2 -ScriptBlock{
   Start-Process C:\Temp\7zipInstaller.bat -Wait -NoNewWindow
}

此命令将在计算机Testmachine1Testmachine2上运行。确保在运行此命令之前将 MSI 包复制到远程位置。