Vbscript 查找部分名称为VBS的服务

Vbscript 查找部分名称为VBS的服务,vbscript,scripting,Vbscript,Scripting,我们有一个服务,在不同的机器上以不同的名称运行,例如 Bomgar scadsadccd、BOMGARSDSCHFN、BOMGARSCNKDKDK 因此,这里我们需要编写一个VB脚本来查找部分名为“Bomgar”的服务 并检查它的状态,如 1) 不存在,则应从“start\10.216.16.245\Bomgar.exe”之类的共享文件夹安装 2) 已安装但未运行,然后启动服务。 3) 已安装并正在运行,然后退出 我们如何才能做到这一点 strComputer = "." Set objWMIS

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

Bomgar scadsadccd、BOMGARSDSCHFN、BOMGARSCNKDKDK

因此,这里我们需要编写一个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

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

Set colRunningServices = objWMIService.ExecQuery("Select * from Win32_Service where Name like '%bomgar%'")
您需要使用
WshShell
对象的
Run
命令来启动EXE,而不是
start

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

向我们展示您到目前为止的情况,并告诉我们您具体遇到了哪些问题。听起来好像你要我们为你写整件事,这可能就是你被否决的原因。我对这件事完全陌生,这就是我尝试过的。“strComputer=“.”Set-objWMIService=GetObject(“winmgmts:“{impersonationLevel=impersonate}.\\”&strComputer&“\root\cimv2”)Set-colRunningServices=objWMIService.ExecQuery(“从Win32\u服务中选择*,其中Name='bomgar*'))nItems=colRunningServices。如果nItems>0,则计数;如果objItem.State=“Stopped”,则为colRunningServices中的每个对象计算;如果objItem.State=“Stopped”,则为objItem.startservice ElseIf objItem.State=“Running“然后退出End If Next Else start\\10.18.23.245\Shared\Bomgar.exe End IfI已将您的代码添加到您的问题中。我已尝试过此方法,并且效果良好。如果客户端不存在,则它是从共享文件夹安装的,但当服务停止时,它不会启动它。请使用以下命令。对于colRunningServices中的每个objItem,如果objItem.State=“Stopped”,那么objItem.startservice()End If如何像上面那样发布脚本?