1

Тема: VBS: WMI поиск установленного SQL сервера и перезапуск службы.

Доброго времени суток уважаемые коллеги, хотелось бы у вас уточнить каким образом возможно определить какой именно Сервер SQL установлен и перезапустить службу. Сервера могу быть 2000,05,08 полноценные и Express версии ...

Вот что у меня получается:


strComputer = "."
srt=""
 
Set objWMIService = GetObject("winmgmts:" & _
    "{impersonationLevel=Impersonate}!\\" & strComputer & "\root\cimv2")
Set colSQLServices = objWMIService.ExecQuery _
  ("SELECT * FROM Win32_Service WHERE State = 'Running' and Name like '%SQL%'")
 
For Each objService in colSQLServices
    str = str & objService.Name  &  vbcrlf

Set colStopList = objWMIService.ExecQuery("Associators of " _
   & "{Win32_Service.Name=' ""objService.Name"" '} Where " _
        & "AssocClass=Win32_DependentService " & "Role=Antecedent" )

For each objStopedService in colStopList
    'objStopedService.StopService()
    str = str & objStopedService.Name  & "  set restart " & vbcrlf
Next
Wscript.Sleep 100
Set colStopList = objWMIService.ExecQuery _
        ("Select * from Win32_Service where Name='NetDDE'")
For each objStopedService in colStopList
    'errReturn = objStopedService.StopService()
    str = str & objStopedService.Name  & "  set restart " & vbcrlf
Next

Next

В моем случае ищу из списка совпадения, и найдя по Name like '%SQL% - вывожу имя службы и перезапускаю, зависимости и саму службу ...

Дабы избежать перезапуска служб которые могут попасть под like '%SQL% - прошу у вас совета каким образом выйти на службу сервера или инстансов ...

За ранее благодарен за совет

2

Re: VBS: WMI поиск установленного SQL сервера и перезапуск службы.

Option Explicit

With WScript.CreateObject("SQLDMO.SQLServer")
    .LoginSecure = True
    .Connect "MachineNameForSQLServer"
    
    WScript.Echo "SQL Major Version: "  & .VersionMajor
    WScript.Echo "SQL Minor Version: "  & .VersionMinor
    WScript.Echo "SQL Version String: " & .VersionString
    
    .Stop
    .Start False
    
    .Close
End With

WScript.Quit 0

3

Re: VBS: WMI поиск установленного SQL сервера и перезапуск службы.

Т.е. по сути если стоит MS SQL Server то я смогу через SQLDMO к нему подключится (Вне зависимости от того как называется служба)

А если SQLDMO нет? в каталоге \Microsoft SQL Server\80\Tools\Binn  нет Библиотеки SQLDMO.DLL
как тогда еще можно определить и найти

4

Re: VBS: WMI поиск установленного SQL сервера и перезапуск службы.

Т.е. по сути если стоит MS SQL Server то я смогу через SQLDMO к нему подключится

На клиентскую машину достаточно установить «Client Tools»:

+ открыть спойлер

http://i.imgur.com/bbSiyrt.png

А если SQLDMO нет? в каталоге \Microsoft SQL Server\80\Tools\Binn  нет Библиотеки SQLDMO.DLL

Проверьте компоненты установки. На новых версиях, вплоть до  SQL Server 2008 R2 — библиотека вроде как должна быть, хоть и требует отдельной регистрации: Установка SQL-DMO. Хотя, не знаю… Там же:

Управляющие объекты баз данных SQL Server (SQL-DMO) удалены из SQL Server 2008 R2 Express и пакета дополнительных компонентов SQL Server 2008 R2.