Visual Basic .NET で SQL Server のインスタンスに対して Microsoft SQL Server サービスの停止や再起動を行う方法
このセクションでは、ManagedComputer オブジェクトを使用して、Microsoft SQL Server サービスの停止や起動を行う方法について説明します。
コード例では、WMI Provider for Configuration Management へのインターフェイスを提供する SMO ManagedComputer オブジェクトを使用して、サービスの停止や起動を行う方法を示します。
Visual Studio 2005 を起動します。
[ファイル] メニューの [新規作成] をポイントして [プロジェクト] をクリックします。[新しいプロジェクト] ダイアログ ボックスが表示されます。
[プロジェクトの種類] ペインで、[Visual Basic] をクリックします。[テンプレート] ペインで、[コンソール アプリケーション] をクリックします。
(省略可) [名前] ボックスに新しいアプリケーションの名前を入力します。
[OK] をクリックすると、Visual Basic コンソール アプリケーション テンプレートが読み込まれます。
[プロジェクト] メニューの [参照の追加] をクリックします。[参照の追加] ダイアログ ボックスが表示されます。[参照] をクリックして、C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies フォルダ内で SMO アセンブリを探します。次のファイルを選択します。
Microsoft.SqlServer.ConnectionInfo.dll
Microsoft.SqlServer.Smo.dll
Microsoft.SqlServer.SqlEnum.dll
Microsoft.SqlServer.SmoEnum.dll
Microsoft.SqlServer.Smo.WmiEnum
[表示] メニューの [コード] をクリックします。または、[Module1.vb] ウィンドウをクリックしてコード ウィンドウを表示します。
コードでは、宣言の前に、次の Imports ステートメントを入力し、SMO 名前空間の型を修飾します。
Imports Microsoft.SqlServer.Management.Smo Imports Microsoft.SqlServer.Management.Smo.Wmi Imports Microsoft.SqlServer.Management.Common
このプロシージャの後に続くコードをメイン プログラムに挿入します。
アプリケーションを実行およびビルドします。
'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