Используя VBScript, как я могу проверить, запущена ли служба диспетчера очереди и, если нет, запустить ее? - PullRequest
3 голосов
/ 08 октября 2010

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

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colRunningServices = objWMIService.ExecQuery _
    ("Select * from Win32_Service")
For Each objService in colRunningServices 
    Wscript.Echo objService.DisplayName  & VbTab & objService.State
Next

Большое спасибо Стивен

Ответы [ 3 ]

5 голосов
/ 08 октября 2010

Как насчет чего-то подобного.Эта команда запустит его, если он еще не запущен.Нет необходимости проверять заранее.

Dim shell
Set shell = CreateObject("WScript.Shell")
shell.Run "NET START spooler", 1, false
1 голос
/ 08 октября 2010
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colRunningServices = objWMIService.ExecQuery _
    ("select State from Win32_Service where Name = 'Spooler'")

For Each objService in colRunningServices
    If objService.State <> "Running" Then
        errReturn = objService.StartService()
    End If
Next

Обратите внимание, что вы также можете использовать objService.started, чтобы проверить, запущено ли оно.

0 голосов
/ 08 октября 2010

Просто для полного, вот альтернативный вариант с использованием объекта Shell.Application:

Const strServiceName = "Spooler"

Set oShell = CreateObject("Shell.Application")
If Not oShell.IsServiceRunning(strServiceName) Then
  oShell.ServiceStart strServiceName, False
End If

Или просто:

Set oShell = CreateObject("Shell.Application")
oShell.ServiceStart "Spooler", False    ''# This returns False if the service is already running
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...