Поделиться через


Управление службами и сетевыми настройками с помощью поставщика WMI

Поставщик WMI представляет собой опубликованный интерфейс, который используется консолью управления Майкрософт (MMC) для управления службами и протоколами SQL Server. В SMO поставщик WMI представляется объектом ManagedComputer.

Объект ManagedComputer действует независимо от соединения, установленного объектом Server с экземпляром SQL Server, и использует учетные данные Windows для соединения со службой WMI.

Примеры

Чтобы использовать какой-либо из представленных примеров кода, необходимо выбрать среду, шаблон и язык программирования, с помощью которых будет создаваться приложение. Дополнительные сведения см. в разделе «Как создать проект Visual Basic SMO в Visual Studio .NET» или «Как создать проект Visual C# SMO в Visual Studio .NET» в электронной документации по SQL Server.

Для программ, использующих поставщик WMI SQL Server, необходимо включить инструкцию Imports для определения пространства имен WMI. Введите эту инструкцию после других инструкций Imports, но перед какими-либо декларациями в приложении.

Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common
Imports Microsoft.SqlServer.Management.Smo.Wmi

Остановка и повторный запуск службы Microsoft SQL Server в экземпляре SQL Server на языке Visual Basic .NET

Этот пример кода показывает, как остановить и запустить службы с помощью объекта SMO ManagedComputer. Это обеспечивает интерфейс с поставщиком WMI для управления конфигурацией.

'Declare and create an instance of the ManagedComputer object that represents the WMI Provider services.
Dim mc As ManagedComputer
mc = New ManagedComputer()
'Iterate through each service registered with the WMI Provider.
Dim svc As Service
For Each svc In mc.Services
    Console.WriteLine(svc.Name)
Next
'Reference the Microsoft SQL Server service.
svc = mc.Services("MSSQLSERVER")
'Stop the service if it is running and report on the status continuously until it has stopped.
If svc.ServiceState = ServiceState.Running Then
    svc.Stop()

    Console.WriteLine(String.Format("{0} service state is {1}", svc.Name, svc.ServiceState))
    Do Until String.Format("{0}", svc.ServiceState) = "Stopped"
        Console.WriteLine(String.Format("{0}", svc.ServiceState))
        svc.Refresh()
    Loop
    Console.WriteLine(String.Format("{0} service state is {1}", svc.Name, svc.ServiceState))
    'Start the service and report on the status continuously until it has started.
    svc.Start()
    Do Until String.Format("{0}", svc.ServiceState) = "Running"
        Console.WriteLine(String.Format("{0}", svc.ServiceState))
        svc.Refresh()
    Loop
    Console.WriteLine(String.Format("{0} service state is {1}", svc.Name, svc.ServiceState))

Else
    Console.WriteLine("SQL Server service is not running.")
End If