vbscript检查进程是否正在运行,如果没有,则从网络复制文件

vbscript检查进程是否正在运行,如果没有,则从网络复制文件,vbscript,Vbscript,我是VB脚本新手,需要一个程序的帮助来完成以下操作,有人能帮我吗。如果整个程序可以嵌入到一个vbscript中,那就太好了 写一个脚本来检查 如果某个进程正在运行或未运行,例如notepad++.exe, 如果它正在运行,那么不要做任何事情。 如果进程未运行,请检查C:\Program Filesx86下是否存在目录 如果目录不存在,则将.exe文件从网络共享位置复制到本地驱动器上,然后 然后在静默模式下执行命令行安装 你可以用这个例子。您需要进行if检查并与objItem.Name=notep

我是VB脚本新手,需要一个程序的帮助来完成以下操作,有人能帮我吗。如果整个程序可以嵌入到一个vbscript中,那就太好了

写一个脚本来检查

如果某个进程正在运行或未运行,例如notepad++.exe, 如果它正在运行,那么不要做任何事情。 如果进程未运行,请检查C:\Program Filesx86下是否存在目录 如果目录不存在,则将.exe文件从网络共享位置复制到本地驱动器上,然后 然后在静默模式下执行命令行安装
你可以用这个例子。您需要进行if检查并与objItem.Name=notepad.exe进行比较,然后执行您希望执行的任何操作:

   sComputerName = "."
   Set objWMIService = GetObject("winmgmts:\\" & sComputerName & "\root\cimv2")
   sQuery = "SELECT * FROM Win32_Process"
   Set objItems = objWMIService.ExecQuery(sQuery)
   'iterate all item(s)
   For Each objItem In objItems
       WScript.Echo "Process [Name:" & objItem.Name & "]"
   Next
另请注意,您可以在查询中使用WHERE语句:

SELECT * FROM Win32_Process WHERE Name LIKE '%notepad%'

您可以找到要查询的列名称:

首先,欢迎使用StackOverflow。第二,阅读FAQ,了解什么类型的问题以及如何提问。该链接绝对相关。@alfadog67:我希望它还有一个用于运行进程的用户名的属性。它有SessionID,但它的变化取决于哪个用户首先登录。所以它有点没用。@c0000fd,在下面的Rohtash示例中,在For Each:ret=objItem.getUseruName之后添加它,uDomain-uName将是创建进程的用户名,uDomain将包含域。此链接在“方法”下列出。我同意,如果你不读它就没用了。如果你只想为该用户而不是每个人安装一个版本,那么用户是谁才重要,对吧?WHERE技术应该快得多,因为有数百个进程正在运行。