方法 : サービスの一覧を取得する
更新 : 2007 年 11 月
ServiceController クラスの GetServices メソッドを使用して、特定のコンピュータにあるサービスの一覧を取得できます。GetServices メソッドは、1 台のコンピュータで利用できるすべてのサービスの配列を返します。ただし、デバイス ドライバ関連のサービスは除きます。デバイス ドライバ サービスは、GetDevices メソッドで取得できます。
これらのメソッドには、情報収集対象のコンピュータを指定します。パラメータを指定しないで実行した場合は、ローカル コンピュータにあるサービスの一覧を取得します。
サービスの一覧を取得するには
問い合わせの結果を格納する ServiceController 型の配列を作成します。
ServiceController クラスのメソッドを呼び出して、配列に結果を設定します。次のいずれかの形式で実行します。
デバイス ドライバ以外のサービスの一覧をローカル コンピュータから取得するには、パラメータを指定せずに GetServices メソッドを呼び出します。
Dim services() As System.ServiceProcess.ServiceController services = System.ServiceProcess.ServiceController.GetServices()
System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetServices();
System.ServiceProcess.ServiceController services[]; services = System.ServiceProcess.ServiceController.GetServices();
デバイス ドライバ以外のサービスの一覧を特定のコンピュータから取得するには、GetServices メソッドを呼び出し、パラメータに対象のコンピュータを文字列で指定します。
Dim services() As System.ServiceProcess.ServiceController services = System.ServiceProcess.ServiceController.GetServices( _ "machinename")
System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetServices( "machinename");
デバイス ドライバ サービスの一覧をローカル コンピュータから取得するには、パラメータを指定せずに GetDevices メソッドを呼び出します。
Dim services() As System.ServiceProcess.ServiceController services = System.ServiceProcess.ServiceController.GetDevices()
System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetDevices();
デバイス ドライバ サービスの一覧を特定のコンピュータから取得するには、GetDevices メソッドを呼び出し、対象のコンピュータをパラメータに文字列で指定します。
Dim services() As System.ServiceProcess.ServiceController services = System.ServiceProcess.ServiceController.GetDevices( _ "machinename")
System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetDevices( "machinename");
次のコードは、ローカル コンピュータ上にあるサービスの一覧を取得し、各サービスの情報をリスト ボックスに表示する方法を示しています。GetServices メソッドは ServiceController オブジェクトの配列を返すということに注意してください。返された個々の ServiceController は、対象のコンピュータ上にある 1 つのサービスを表します。
Sub ListServices() Dim ListBox1 As ListBox Dim services() As System.ServiceProcess.ServiceController Dim i As Integer services = System.ServiceProcess.ServiceController.GetServices() ListBox1.Items.Clear() For i = 0 To services.Length - 1 ListBox1.Items.Add(services(i).ServiceName) Next End Sub
private void ListServices() { ListBox listBox1 = null; System.ServiceProcess.ServiceController[] services; services = System.ServiceProcess.ServiceController.GetServices(); listBox1.Items.Clear(); for (int i = 0; i < services.Length; i++) { listBox1.Items.Add(services[i].ServiceName); } }
このコードの例は、Visual Basic IntelliSense コード スニペットとしても利用できます。コード スニペット ピッカーでは、これは [Windows Operating System] の [Windows Services] にあります。詳細については、「方法 : コードにスニペットを挿入する (Visual Basic)」を参照してください。
参照
処理手順
方法 : ServiceController コンポーネントのインスタンスを作成する