2013-03-07 73 views
-2

我是VB新手脚本,需要帮助程序做以下事情,有人可以帮我解决。如果整个程序可以嵌入到一个vbscript中,那将会很棒。vbscript检查一个进程是否正在运行,如果没有,那么从网络复制一个文件

写一个脚本来检查

  1. 如果一个进程正在运行或没有(例如记事本++。exe文件),
  2. 如果它的运行,然后不要做任何事情。
  3. 如果进程没有运行,请检查目录是否存在或不在C:\ Program Files(x86)下
  4. 说出目录是否存在,然后将.exe文件从网络共享位置复制到本地驱动器和
  5. 然后在无声模式下执行命令行安装。(实施例>记事本++。EXE-MS)
+0

首先,欢迎来到StackOverflow。其次,阅读常见问题解答以了解什么类型以及如何提问。 – 2013-03-07 05:42:16

回答

3

可以使用此实施例。你需要把一个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 
3

另外请注意,您可以使用WHERE语句查询:

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

Here你可以找到的列名查询:

+0

链接是绝对中肯的。 – alfadog67 2016-02-02 16:41:13

+0

@ alfadog67:我希望它也有一个用于运行进程的用户名的属性。它具有'SessionID',但是这取决于哪个用户首先登录。所以它有点没用。 – c00000fd 2016-08-31 07:07:56

+0

@ c00000fd,在下面的Rohtash示例中,在“For Each”后添加以下内容:ret = objItem.getUser(uName,uDomain) - uName将创建进程的用户名,并且uDomain将包含域。该链接在“方法”下列出。我同意,如果你没有阅读它就没用。 – alfadog67 2016-08-31 16:44:06

相关问题