Bagikan melalui


Mengelola Layanan dan Pengaturan Jaringan dengan Menggunakan Penyedia WMI

Penyedia WMI adalah antarmuka yang diterbitkan yang digunakan oleh Konsol Manajemen Microsoft (MMC) untuk mengelola layanan SQL Server dan protokol jaringan. Dalam SMO, ManagedComputer objek mewakili Penyedia WMI.

Objek ManagedComputer beroperasi secara independen dari koneksi yang dibuat dengan Server objek ke instans SQL Server, dan menggunakan kredensial Windows untuk terhubung ke layanan WMI.

Contoh

Untuk menggunakan contoh kode apa pun yang disediakan, Anda harus memilih lingkungan pemrograman, templat pemrograman, dan bahasa pemrograman untuk membuat aplikasi Anda. Untuk informasi selengkapnya, lihat "Cara: Membuat Proyek SMO Visual Basic di Visual Studio .NET" atau "Cara: Membuat Proyek Visual C# SMO di Visual Studio .NET" di SQL Server Books Online.

Untuk program yang menggunakan penyedia WMI SQL Server, Anda harus menyertakan Imports pernyataan untuk memenuhi syarat namespace layanan WMI. Sisipkan pernyataan setelah pernyataan lain Imports , sebelum deklarasi apa pun dalam aplikasi, seperti:

Imports Microsoft.SqlServer.Management.Smo

Imports Microsoft.SqlServer.Management.Common

Imports Microsoft.SqlServer.Management.Smo.Wmi

Menghentikan dan Memulai Ulang Layanan Microsoft SQL Server ke Instans SQL Server di Visual Basic

Contoh kode ini menunjukkan cara menghentikan dan memulai layanan dengan menggunakan objek SMO ManagedComputer . Ini menyediakan antarmuka ke Penyedia WMI untuk Manajemen Konfigurasi.

Mengaktifkan Protokol Server menggunakan String URN di Visual Basic

Contoh kode menunjukkan cara mengidentifikasi protokol server menggunakan objek URN, lalu mengaktifkan protokol.

'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()  

Mengaktifkan Protokol Server menggunakan String URN di PowerShell

Contoh kode menunjukkan cara mengidentifikasi protokol server menggunakan objek URN, lalu mengaktifkan protokol.

#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()  

Memulai dan menghentikan layanan di Visual C#

Contoh kode menunjukkan cara menghentikan dan memulai instans 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();  
   }   
}  

Memulai dan menghentikan layanan di PowerShell

Contoh kode menunjukkan cara menghentikan dan memulai instans 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"

Lihat Juga

Penyedia WMI untuk Konsep Manajemen Konfigurasi