您正在本地主机上运行远程 MSI。要在远程主机上安装远程可执行文件,您可以使用 WMI:
host = "<IP ADDR>"
setup = "msiexec /a ""C:\MySetup\<FILENAME>"" /quiet ..."
Set wmi = GetObject("winmgmts://" & host & "/root/cimv2")
rc = wmi.Get("Win32_Process").Create(setup, , , pid)
If rc = 0 Then
WScript.Echo "Setup started with PID " & pid & "."
Else
WScript.Echo "Starting setup failed. (" & rc & ")"
End If
以上将异步启动进程(即Create
立即返回)。如果您需要等待远程进程完成,则必须像这样监视它:
Do
WScript.Sleep 100
Set p = wmi.ExecQuery("SELECT * FROM Win32_Process WHERE ProcessID=" & pid)
Loop Until p.Count = 0
不过,可能有更简单的方法来做你想做的事,例如PsExec
:
psexec \\<IP ADDR> msiexec /a "C:\MySetup\<FILENAME>" /quiet ...