Vbscript run(InstallPath,0,true)不等待完成安装并继续脚本

Vbscript run(InstallPath,0,true)不等待完成安装并继续脚本,vbscript,Vbscript,下午好 我正在为我的公司做一个项目,在员工工作站上运行更新。该文件位于我们域的Web服务器上。用户将单击链接并启动脚本 我做了两个函数,一个用于将文件下载到C:\上,另一个用于运行安装程序。该文件是.exe(我希望是.msi) 我正在使用wshshell.run(installPath,0,true)执行该文件。据我所知,这应该隐藏安装窗口并等待执行完成 它将启动它,但不会等待完成安装,因为.exe中有两个步骤。“准备安装”完成后,脚本将继续其工作 我可以放置Wscript.sleep。然而,并

下午好

我正在为我的公司做一个项目,在员工工作站上运行更新。该文件位于我们域的Web服务器上。用户将单击链接并启动脚本

我做了两个函数,一个用于将文件下载到C:\上,另一个用于运行安装程序。该文件是.exe(我希望是.msi)

我正在使用wshshell.run(installPath,0,true)执行该文件。据我所知,这应该隐藏安装窗口并等待执行完成

它将启动它,但不会等待完成安装,因为.exe中有两个步骤。“准备安装”完成后,脚本将继续其工作

我可以放置Wscript.sleep。然而,并非所有机器都具有相同的处理速度。所以,我不知道要等多久

你对我能做什么有什么建议吗

谢谢,


Brian

听起来您的安装文件正在生成另一个进程,然后退出。如果是这种情况,除了编写一个等待两个进程终止的“包装器”可执行文件并调用该文件外,您什么也做不了。

安装过程通常会产生多个进程(例如setup.exe、msiexec.exe、install.exe、idriver.exe等),并且看起来setup.exe在第一步后退出(“准备安装”)已启动另一个进程以完成安装。在这种情况下,
WshShell.Run
将无法帮助等待安装完成

不过,您应该可以使用来完成此操作。也就是说,您可以订阅进程创建和进程删除WMI事件,并通过这种方式监视进程的创建并等待它们结束。以下是有关此主题的几篇文章:


我只需要找到启动的流程,这就成功了。它非常有用,而且写得也很好。谢谢!-布赖恩
'' //executes the file at the location: installPath
Function launchUpdate(installPath)
    dim wshShell
    Set wshShell = WScript.CreateObject ("WSCript.shell")
    errReturn =  wshshell.run(installPath, 6, true)
End function