Udostępnij za pośrednictwem


Zarządzanie za pomocą dostawcy WMI usług i ustawienia sieci

Dostawca WMI jest opublikowanego interfejs, który jest używany przez Microsoft Management Console (MMC) do zarządzania SQL Server usługi i protokoły sieciowe.W SMO ManagedComputer reprezentuje obiekt dostawcy WMI.

ManagedComputer Obiektu działa niezależnie od połączenia z Server obiektu do wystąpienie SQL Serveri używa poświadczenia systemu Windows do łączenia się z usługa WMI.

Przykład

Aby używać dostarczonych przykładów kodu źródłowego, należy wybrać środowisko, szablon oraz język programowania, które będą używane do tworzenia aplikacji. Aby uzyskać więcej informacji, zobacz temat „Jak utworzyć projekt SMO języka Visual Basic w programie Visual Studio .NET” lub „Jak utworzyć projekt SMO języka Visual C# w programie Visual Studio .NET” w dokumentacji SQL Server — książki online.

Aby programy używające SQL Server dostawca WMI musi zawierać przywóz instrukcja Aby zakwalifikować się do obszaru nazw WMI.Wstaw instrukcja po drugim Imports instrukcjas przed wszelkimi deklaracjami w aplikacji, takich jak:

Imports Microsoft.SqlServer.Management.Smo

Imports Microsoft.SqlServer.Management.Common

Imports Microsoft.SqlServer.Management.Smo.Wmi

Zatrzymanie i ponowne uruchomienie usługi Microsoft SQL Server wystąpienia programu SQL Server w języku Visual Basic

Poniższy przykład kodu pokazuje jak zatrzymać i uruchomić usługi za pomocą obiektów SMO ManagedComputer obiektu.Ten interfejs do dostawcy WMI do zarządzania konfiguracją.

'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

Włączenie protokołu Server przy użyciu ciągu URN w języku Visual Basic

Przykład kodu pokazuje jak zidentyfikować protokół serwera za pomocą obiektu URN, a następnie włączyć protokół.

'This program must run with administrator privileges.
        'Declare the ManagedComputer WMI interface.
        Dim mc As New ManagedComputer()

        'Create a URN object that represents the TCP server protocol.
        Dim u As New Urn("ManagedComputer[@Name='V-ROBMA3']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']")

        'Declare the serverProtocol variable and return the ServerProtocol object.
        Dim sp As ServerProtocol
        sp = mc.GetSmoObject(u)

        'Enable the protocol.
        sp.IsEnabled = True

        'propagate back to the service
        sp.Alter()

Włączenie protokołu Server przy użyciu ciągu URN w PowerShell

Przykład kodu pokazuje jak zidentyfikować protokół serwera za pomocą obiektu URN, a następnie włączyć protokół.

#This example shows how to identify a server protocol using a URN object, and then enable the protocol
#This program must run with administrator privileges.

#Load the assembly containing the classes used in this example
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement")


#Get a managed computer instance
$mc = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer

#Create a URN object that represents the TCP server protocol
#Change 'MyPC' to the name of the your computer 
$urn = New-Object -TypeName Microsoft.SqlServer.Management.Sdk.Sfc.Urn -argumentlist "ManagedComputer[@Name='MyPC']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"

#Get the protocol object
$sp = $mc.GetSmoObject($urn)

#enable the protocol on the object
$sp.IsEnabled = $true

#propagate back to actual service
$sp.Alter()

Uruchamianie i zatrzymywanie usługa w środowisku Visual C#

Przykład kodu pokazuje jak zatrzymać i uruchomić wystąpienie programu SQL Server.

{ 
   //Declare and create an instance of the ManagedComputer 
   //object that represents the WMI Provider services. 
   ManagedComputer mc; 
   mc = new ManagedComputer(); 
   //Iterate through each service registered with the WMI Provider. 
  
   foreach (Service svc in mc.Services)
   { 
      Console.WriteLine(svc.Name); 
   } 
//Reference the Microsoft SQL Server service. 
  Service Mysvc = mc.Services["MSSQLSERVER"]; 
//Stop the service if it is running and report on the status
// continuously until it has stopped. 
   if (Mysvc.ServiceState == ServiceState.Running) { 
      Mysvc.Stop(); 
      Console.WriteLine(string.Format("{0} service state is {1}", Mysvc.Name, Mysvc.ServiceState)); 
      while (!(string.Format("{0}", Mysvc.ServiceState) == "Stopped")) { 
         Console.WriteLine(string.Format("{0}", Mysvc.ServiceState)); 
          Mysvc.Refresh(); 
      } 
      Console.WriteLine(string.Format("{0} service state is {1}", Mysvc.Name, Mysvc.ServiceState)); 
//Start the service and report on the status continuously 
//until it has started. 
      Mysvc.Start(); 
      while (!(string.Format("{0}", Mysvc.ServiceState) == "Running")) { 
         Console.WriteLine(string.Format("{0}", Mysvc.ServiceState)); 
         Mysvc.Refresh(); 
      } 
      Console.WriteLine(string.Format("{0} service state is {1}", Mysvc.Name, Mysvc.ServiceState));
      Console.ReadLine();
   } 
   else { 
      Console.WriteLine("SQL Server service is not running.");
      Console.ReadLine();
   } 
}

Uruchamianie i zatrzymywanie usługa w PowerShell

Przykład kodu pokazuje jak zatrzymać i uruchomić wystąpienie programu SQL Server.

#Load the assembly containing the objects used in this example
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement")

#Get a managed computer instance
$mc = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer

#List out all sql server instnces running on this mc
foreach ($Item in $mc.Services){$Item.Name}

#Get the default sql server datbase engine service
$svc = $mc.Services["MSSQLSERVER"]

# for stopping and starting services PowerShell must run as administrator

#Stop this service
$svc.Stop()
$svc.Refresh()
while ($svc.ServiceState -ne "Stopped")
{
$svc.Refresh()
$svc.ServiceState
}
"Service" + $svc.Name + " is now stopped"
"Starting " + $svc.Name
$svc.Start()
$svc.Refresh()
while ($svc.ServiceState -ne "Running")
{
$svc.Refresh()
$svc.ServiceState
}
$svc.ServiceState
"Service" + $svc.Name + "is now started"