Как из скрипта запустить Windows-службу с параметром

Стандартный

Как-то раз мне понадобилось запустить из vbs-скрипта службу с параметром. Долго искал как это сделать, нашел только один способ. Есть такая полезная штука — Windows Server 2003 Resource Kit Tools. Это набор различных утилит для администрирования. В том числе там есть тула SC.exe.

SC представляет собой программу командной строки, используемую для связи диспетчера управления службами со службами.

Так вот, это тула много чего умеет делать со службами:

  • Запускать/останавливать;
  • Получать состояние службы;
  • Удалять службы;
  • Получать зависимости службы и другие параметры.

Синтаксис у нее следующий:

sc <сервер> [команда] [имя службы] <параметр1> <параметр2>...

Чтобы запустить службу с параметром, нужно выполнить следующую команду:

sc.exe start MySrv MyParam

Где MySrv — имя службы (которое не Display Name, а Service Name), MyParam — параметр службы.

Собственно, для запуска из скрипта можно использовать следующий код:

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim objSc
Set objSc = WshShell.Exec("sc.exe start MySrv MyParam")
Do While True
    If objSc.Status = 1 Then
        Exit Do
    Else
        WScript.Sleep 1000
    End If
Loop
If objSc.ExitCode <> 0 Then
    Wscript.Echo "Cannot start service 'MyService'" & _
        "sc.exe exit code = " & objSc.ExitCode
    Wscript.Quit 2
End If

PS. В этом же Resource Kit есть утилита Sleep.exe, которая просто умеет «засыпать». Ее полезно использовать в bat-файлах, если нужно приостановить выполнение команд.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s