查找部分名称为VBS的服务

时间:2014-08-25 15:19:01

标签: vbscript scripting

我们有一个在不同机器上运行不同名称的服务,例如

Bomgar-scadsadccd,Bomgarsdscchfn,Bomgarscnkfkdk

所以,在这里,我们需要编写一个VB脚本,找到部分名称为“Bomgar”的服务 并检查它的状态如

1)不存在,则应从“start \ 10.216.16.245 \ Bomgar.exe”等共享文件夹安装 2)已安装但未运行,然后启动该服务。 3)安装并运行然后退出。

我们如何实现这一目标?

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 

Set colRunningServices = objWMIService.ExecQuery("Select * from Win32_Service where Name='bomgar*'") 
nItems = colRunningServices.Count 

If nItems > 0 Then 
    For Each objItem in colRunningServices 
        If objItem.State = "Stopped" Then 
            objItem.startservice
        ElseIf objItem.State = "Running" Then
            exit
        End If
    Next
Else
    start \\10.18.23.245\Shared\Bomgar.exe
End If

1 个答案:

答案 0 :(得分:1)

您可以在WQL语句中使用like关键字和%通配符来查找包含特定文本的任何服务。例如:

Set colRunningServices = objWMIService.ExecQuery("Select * from Win32_Service where Name like '%bomgar%'")

而不是start,您需要使用Run对象的WshShell命令来启动您的EXE:

With CreateObject("WScript.Shell")
    .Run "\\10.18.23.245\Shared\Bomgar.exe"
End With