VBScript - попробуйте запустить службу, пока не найдете работающий экземпляр - PullRequest
1 голос
/ 24 декабря 2011

Я написал код ниже на основе примеров, найденных здесь и в Интернете:

'Option Explicit
Dim objWMIService, objWMIService2, processItems, ProcessName, ServiceName, colListOfServices
ProcessName = "Agent.exe"
ServiceName = "EaseUS Agent"
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set processItems = objWMIService.ExecQuery("Select * from Win32_Process where Name='"  & ProcessName & "'")
Set objWMIService2 = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colListOfServices = objWMIService2.ExecQuery ("Select * from Win32_Service Where Name ='" & ServiceName & "'")
'Wscript.Echo ProcessName & ": " & processItems.Count

Do
'Start Service
For Each objService in colListOfServices
     objService.StartService()
Next
Loop While processItems.Count = 0

Но это не работает.Можете ли вы помочь мне найти, что там не так?Если я включу команду Option Explicit, скрипт скажет:

objService не определен.

Если я комментирую команду Option Explicit, она сопровождается ошибкой провайдера, код 80041004, происхождение SWbemObjectEx , относящейся к строке objService.StartService()

1 Ответ

0 голосов
/ 31 января 2012

Возможно, это глупый вопрос, но есть ли у пользователя разрешения, необходимые для запуска этой службы?

Попробуйте запустить .vbs от имени администратора.

В самом коде нет ничего плохогои StartService не имеет проблем с пробелами в именах служб.

Я сам проверил это со следующей модификацией:

While processItems.Count = 0
'Start Service
For Each objService in colListOfServices
    Wscript.Echo objService.Name
    objService.StartService
Next
WScript.Sleep 5000
Wend

objService.Name позволит вам увидеть название службы, которую выПытаюсь начать.Это должно иметь значение.

Я также добавил 5-секундный сон между попытками дать службе некоторое время для запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...