如果服务正在运行,我想使用wmi来停止服务。下面是vbscript中的代码。
问题是,由于各种原因,GetObject,startService和ExecuteQuery命令可能会出错。例如,在发出“stopService”命令之后,服务的状态可能变为“停止”,而不是“停止”,并且脚本在那里停留相当长的一段时间。有时会返回错误消息,例如“RPC不可用”。似乎没有捕获异常机制内置到vbscript中。我在网上看到的大多数例子从未考虑过这种情况。有没有人知道有一种很好的方法来捕获这种错误,并强制执行这些命令(注意:不是服务本身)中止?
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where Name = '" & strService & "'")
For Each objService in colServiceList
If objService.State = "Running" Then
strObjService.StopService
Wscript.Sleep 2000
myColServiceList = myObjWMIService.ExecQuery _
("Select * from Win32_Service where Name = '" & strService & "'")
For each myObjService In myColServiceList
objState = myObjService.State
End If
End If
[/代码]