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

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

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

写一个脚本来检查

  • 如果进程正在运行或未运行(例如notepad++.exe)
  • 如果它正在运行,那么不要做任何事情
  • 如果进程未运行,请检查C:\Program Files(x86)下是否存在目录
  • 如果目录不存在,则将.exe文件从网络共享位置复制到本地驱动器上,然后
  • 然后在静默模式下执行命令行安装。(示例>记事本+++.exe-ms)

  • 你可以用这个例子。如果检查并与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.getUser(uName,uDomain)-uName将是创建进程的用户名,uDomain将包含域。该链接在“方法”下列出了这一点。我同意,如果你不读它就没用了。如果你只想为该用户安装一个版本,而不是为所有人安装,那么用户是谁才重要,对吧?WHERE技术应该快得多,因为有上百个进程在运行。