Как из скрипта запустить 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-файлах, если нужно приостановить выполнение команд.

Генерация xml-документов с помощью VBScript

Многие програмы хранят данные/настройки и т. п. в xml-документах. Часто при тестировании необходимо проверить что программа корректно ведет себя на довольно большом объеме этих саммых данных. Для этого бывает достаточно просто сгенерировать «большой» xml-документ. В принципе, для этого существуют специальные утилиты, но мне это проще сделать с помощью VBScript :) Собственно, о том как это сделать, я и собираюсь рассказать. Прочтите эту запись до конца »

Каталог блогов на it4business.ru

На www.it4business.ru создается каталог блогов на профессиональные темы: PM, разработка, QA, автоматизации тестирования и пр. Думаю со временем, там можно будет найти массу полезной информации (кстати, я тоже там есть :)).

Как в Excel вернуть комментарии на место

У меня довольно часто «съезжают» комментарии к ячейкам в Excel, что очень неприятно, когда их много. Оказывается, есть простой способ вернуть их на место. Для этого добавляем в книгу такой макрос:

Sub ResetComments()
    Dim cmt As Comment
    For Each cmt In ActiveSheet.Comments
        cmt.Shape.Top = cmt.Parent.Top + 5
        cmt.Shape.Left = cmt.Parent.Offset(0,1).Left + 5
    Next
End Sub

Запускаем и вуаля – все комментарии около своих ячеек ;)

Кучу подобных полезностей можно найти тут.