Я хочу использовать 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
[/ code]