ServiceControllerとは? わかりやすく解説

ServiceController イベント


ServiceController クラス

Windows サービス表し実行中のサービスまたは停止したサービスへの接続サービス操作、またはサービスに関する情報取得実現します

名前空間: System.ServiceProcess
アセンブリ: System.ServiceProcess (system.serviceprocess.dll 内)
構文構文

Public Class ServiceController
    Inherits Component
Dim instance As ServiceController
public class ServiceController : Component
public ref class ServiceController : public
 Component
public class ServiceController extends Component
public class ServiceController extends
 Component
解説解説

ServiceController クラス使用すると、既存サービス接続して動作制御できますServiceController クラスインスタンス作成すると、特定の Windows サービス対話できるようにプロパティ設定します。この設定後、クラス使用してサービス開始停止、およびその他の操作実行できます

ほとんどの場合ServiceController コンポーネント管理機能として使用します。たとえば、ServiceController インスタンス通じてサービスカスタム コマンド送信する Windows アプリケーションまたは Web アプリケーション作成できますサービス コントロール マネージャ (SCM: Service Control Manager) Microsoft 管理コンソール スナップインではカスタム コマンドサポートされていないため、このような機能は便利です。

ServiceControllerインスタンス作成した後で対話対象となるサービス識別する 2 つプロパティとして、制御するコンピュータ名およびサービス名設定する必要があります

メモメモ

既定では、MachineName はローカル コンピュータ設定されているため、別のコンピュータ指定するインスタンス設定しない限り、この設定変更する要はありません。

通常サービス作成者は、特定のコマンド関連付けられているアクションカスタマイズするコード書き込みます。たとえば、ServiceBase.OnPause コマンド応答するコードサービスに含むことができます。この場合Pause タスクカスタム プロセスは、システムサービス一時中断する前に実行されます。

サービス処理できる一連のコマンドは、そのサービスプロパティによって決まります。たとえば、あるサービスの CanStop プロパティfalse設定するとします。この設定により、そのサービスでは Stop コマンド使用できなくなります必要なボタン無効にすると、SCMサービス停止できなくなりますコードサービス停止しようとすると、エラー発生し、" servicename停止できませんでした。" というエラー メッセージ表示されます。

継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
      System.ServiceProcess.ServiceController
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ServiceController メンバ
System.ServiceProcess 名前空間
ServiceBase クラス
ServiceControllerStatus
ServiceType

ServiceController コンストラクタ ()

特定のサービス関連付けられていない ServiceController クラス新しインスタンス初期化します。

名前空間: System.ServiceProcess
アセンブリ: System.ServiceProcess (system.serviceprocess.dll 内)
構文構文

Dim instance As New ServiceController
public ServiceController ()
public:
ServiceController ()
public ServiceController ()
public function ServiceController ()
使用例使用例

ServiceController クラス使用して Alerter サービス停止しているかどうか確認する例を次に示しますサービス停止している場合、このコードサービス開始しサービス ステータスRunning設定されるまで待機します。

' Check whether the Alerter service is started.

Dim sc As New ServiceController()
sc.ServiceName = "Alerter"
Console.WriteLine("The Alerter service status is currently set
 to {0}", sc.Status)

If sc.Status = ServiceControllerStatus.Stopped Then
   ' Start the service if the current status is stopped.
   Console.WriteLine("Starting the Alerter service...")

   Try
      ' Start the service, and wait until its status is "Running".
      sc.Start()
      sc.WaitForStatus(ServiceControllerStatus.Running)
      
      ' Display the current service status.
      Console.WriteLine("The Alerter service status is now set
 to {0}.", sc.Status)
   Catch 
      Console.WriteLine("Could not start the Alerter service.")
   End Try
End If

// Check whether the Alerter service is started.

ServiceController sc  = new ServiceController();
sc.ServiceName = "Alerter";
Console.WriteLine("The Alerter service status is currently set
 to {0}", 
                   sc.Status.ToString());

if (sc.Status == ServiceControllerStatus.Stopped)
{
   // Start the service if the current status is stopped.

   Console.WriteLine("Starting the Alerter service...");
   try 
   {
      // Start the service, and wait until its status is "Running".
      sc.Start();
      sc.WaitForStatus(ServiceControllerStatus.Running);
   
      // Display the current service status.
      Console.WriteLine("The Alerter service status is now set
 to {0}.", 
                         sc.Status.ToString());
   }
   catch (InvalidOperationException)
   {
      Console.WriteLine("Could not start the Alerter service.");
   }
}
// Check whether the Alerter service is started.
ServiceController^ sc = gcnew ServiceController;
if ( sc )
{
   sc->ServiceName =  "Alerter";
   Console::WriteLine(  "The Alerter service status is currently set
 to {0}", sc->Status );
   if ( sc->Status == (ServiceControllerStatus::Stopped) )
   {
      // Start the service if the current status is stopped.
      Console::WriteLine(  "Starting the Alerter service..." );
      try
      {
         // Start the service, and wait until its status is "Running".
         sc->Start();
         sc->WaitForStatus( ServiceControllerStatus::Running );
         
         // Display the current service status.
         Console::WriteLine(  "The Alerter service status is now set
 to {0}.", sc->Status );
      }
      catch ( InvalidOperationException^ e ) 
      {
         Console::WriteLine(  "Could not start the Alerter service." );
      }
   }
}
// Check whether the Alerter service is started.
ServiceController sc = new ServiceController();
sc.set_ServiceName("Alerter");
Console.WriteLine("The Alerter service status is currently set
 to {0}",
    sc.get_Status().ToString());

if (sc.get_Status().Equals(ServiceControllerStatus.Stopped)) {
    // Start the service if the current status is stopped.
    Console.WriteLine("Starting the Alerter service...");
    try {
        // Start the service, and wait until its status is 
        // "Running".
        sc.Start();
        sc.WaitForStatus(ServiceControllerStatus.Running);
        // Display the current service status.
        Console.WriteLine("The Alerter service status is now set
 to {0}.",
            sc.get_Status().ToString());
    }
    catch (InvalidOperationException exp) {
        Console.WriteLine("Could not start the Alerter service.");
    }
}
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

ServiceController コンストラクタ (String)

ローカル コンピュータ既存サービス関連付けられている ServiceController クラス新しインスタンス初期化します。

名前空間: System.ServiceProcess
アセンブリ: System.ServiceProcess (system.serviceprocess.dll 内)
構文構文

Dim name As String

Dim instance As New ServiceController(name)
public ServiceController (
    string name
)
public:
ServiceController (
    String^ name
)
public ServiceController (
    String name
)
public function ServiceController (
    name : String
)

パラメータ

name

システムサービス識別するための短い名前。

例外例外
例外種類条件

ArgumentException

name パラメータnull 参照 (Visual Basic では Nothing) か、長さが 0 です。

使用例使用例

ServiceController クラス使用してTelnet サービス現在のステータス確認する例を次に示しますサービス停止している場合、このコードサービス開始しますサービス実行中である場合は、そのサービス停止します

' Toggle the Telnet service - 
' If it is started (running, paused, etc), stop the service.
' If it is stopped, start the service.
Dim sc As New ServiceController("Telnet")
Console.WriteLine("The Telnet service status is currently set
 to {0}", sc.Status)

If sc.Status.Equals(ServiceControllerStatus.Stopped) Or
 sc.Status.Equals(ServiceControllerStatus.StopPending) Then
   ' Start the service if the current status is stopped.
   Console.WriteLine("Starting the Telnet service...")
   sc.Start()
Else
   ' Stop the service if its status is not set to "Stopped".
   Console.WriteLine("Stopping the Telnet service...")
   sc.Stop()
End If

' Refresh and display the current service status.
sc.Refresh()
Console.WriteLine("The Telnet service status is now set to {0}.",
 sc.Status)

// Toggle the Telnet service - 
// If it is started (running, paused, etc), stop the service.
// If it is stopped, start the service.
ServiceController sc = new ServiceController("Telnet");
Console.WriteLine("The Telnet service status is currently set
 to {0}", 
                  sc.Status.ToString());

if  ((sc.Status.Equals(ServiceControllerStatus.Stopped)) ||
     (sc.Status.Equals(ServiceControllerStatus.StopPending)))
{
   // Start the service if the current status is stopped.

   Console.WriteLine("Starting the Telnet service...");
   sc.Start();
}  
else
{
   // Stop the service if its status is not set to "Stopped".

   Console.WriteLine("Stopping the Telnet service...");
   sc.Stop();
}  

// Refresh and display the current service status.
sc.Refresh();
Console.WriteLine("The Telnet service status is now set to
 {0}.", 
                   sc.Status.ToString());

// Toggle the Telnet service - 
// If it is started (running, paused, etc), stop the service.
// If it is stopped, start the service.
ServiceController^ sc = gcnew ServiceController(  "Telnet" );
if ( sc )
{
   Console::WriteLine(  "The Telnet service status is currently set
 to {0}", sc->Status );
   if ( (sc->Status == (ServiceControllerStatus::Stopped) )
 || (sc->Status == (ServiceControllerStatus::StopPending) ) )
   {
      // Start the service if the current status is stopped.
      Console::WriteLine(  "Starting the Telnet service..." );
      sc->Start();
   }
   else
   {
      // Stop the service if its status is not set to "Stopped".
      Console::WriteLine(  "Stopping the Telnet service..." );
      sc->Stop();
   }

   // Refresh and display the current service status.
   sc->Refresh();
   Console::WriteLine(  "The Telnet service status is now set
 to {0}.", sc->Status );
// Toggle the Telnet service - 
// If it is started (running, paused, etc), stop the service.
// If it is stopped, start the service.
ServiceController sc = new ServiceController("Telnet");
Console.WriteLine("The Telnet service status is currently set
 to {0}",
    sc.get_Status().ToString());

if (sc.get_Status().Equals(ServiceControllerStatus.Stopped) ||
 
    sc.get_Status().Equals(ServiceControllerStatus.StopPending)) {
    // Start the service if the current status is stopped.
    Console.WriteLine("Starting the Telnet service...");
    sc.Start();
}
else {
    // Stop the service if its status is not set to "Stopped".
    Console.WriteLine("Stopping the Telnet service...");
    sc.Stop();
}
// Refresh and display the current service status.
sc.Refresh();
Console.WriteLine("The Telnet service status is now set to
 {0}.", 
    sc.get_Status().ToString());
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

ServiceController コンストラクタ (String, String)

指定したコンピュータ既存サービス関連付けられている ServiceController クラス新しインスタンス初期化します。

名前空間: System.ServiceProcess
アセンブリ: System.ServiceProcess (system.serviceprocess.dll 内)
構文構文

Public Sub New ( _
    name As String, _
    machineName As String _
)
Dim name As String
Dim machineName As String

Dim instance As New ServiceController(name,
 machineName)
public ServiceController (
    string name,
    string machineName
)
public:
ServiceController (
    String^ name, 
    String^ machineName
)
public ServiceController (
    String name, 
    String machineName
)
public function ServiceController (
    name : String, 
    machineName : String
)

パラメータ

name

システムサービス識別するための短い名前。

machineName

サービス常駐するコンピュータ

例外例外
例外種類条件

ArgumentException

name パラメータnull 参照 (Visual Basic では Nothing) か、長さが 0 です。

または

machineName パラメータ構文無効です。

解説解説

machineName パラメータで "." を使用すると、ローカル コンピュータを表すことができます

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

ServiceController コンストラクタ


ServiceController プロパティ


パブリック プロパティパブリック プロパティ

( プロテクト プロパティ参照)
  名前 説明
パブリック プロパティ CanPauseAndContinue サービス一時中断および再開できるかどうかを示す値を取得します
パブリック プロパティ CanShutdown システムシャットダウン時にサービスにそれを通知する必要があるかどうかを示す値を取得します
パブリック プロパティ CanStop サービスをいったん開始してから停止できるかどうかを示す値を取得します
パブリック プロパティ Container  Component格納している IContainer を取得します。 ( Component から継承されます。)
パブリック プロパティ DependentServices この ServiceController インスタンス関連付けられたサービス依存している一連のサービス取得します
パブリック プロパティ DisplayName サービス表示名取得または設定します
パブリック プロパティ MachineName このサービス常駐しているコンピュータの名前を取得または設定します
パブリック プロパティ ServiceHandle サービスハンドル取得します
パブリック プロパティ ServiceName このインスタンス参照するサービス識別する名前を取得または設定します
パブリック プロパティ ServicesDependedOn 対象となるサービス依存している一連のサービス
パブリック プロパティ ServiceType 対象となるオブジェクト参照するサービスの種類取得します
パブリック プロパティ Site  Component の ISite を取得または設定します。 ( Component から継承されます。)
パブリック プロパティ Status 対象となるインスタンス参照するサービスステータス取得します
プロテクト プロパティプロテクト プロパティ
参照参照

関連項目

ServiceController クラス
System.ServiceProcess 名前空間
ServiceBase クラス
ServiceControllerStatus
ServiceType

ServiceController メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド参照)
  名前 説明
パブリック メソッド Close 対象となる ServiceController インスタンスサービスか切断しインスタンス割り当てたすべてのリソース解放します。
パブリック メソッド Continue サービス一時中断された後に、続行します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信使用するプロキシ生成必要な情報をすべて格納しているオブジェクト作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Dispose オーバーロードされます。  
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 ( Object から継承されます。)
パブリック メソッド ExecuteCommand サービスカスタム コマンド実行します
パブリック メソッド GetDevices オーバーロードされますコンピュータデバイス ドライバ サービス取得します
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 ( Object から継承されます。)
パブリック メソッド GetLifetimeService  対象インスタンス有効期間ポリシー制御する現在の有効期間サービス オブジェクト取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetServices オーバーロードされますコンピュータデバイス以外のドライバ サービス、およびドライバ以外のサービス取得します
パブリック メソッド GetType  現在のインスタンスType取得します。 ( Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象インスタンス有効期間ポリシー制御する有効期間サービス オブジェクト取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Pause サービス操作中断します
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 ( Object から継承されます。)
パブリック メソッド Refresh すべてのプロパティ値を現在の値に設定して更新します
パブリック メソッド Start オーバーロードされますサービス開始します
パブリック メソッド Stop このサービスと、このサービス依存しているすべてのサービス停止します
パブリック メソッド ToString  Component の名前を格納している String返します (存在する場合)。このメソッドオーバーライドできません。 ( Component から継承されます。)
パブリック メソッド WaitForStatus オーバーロードされますサービス指定したステータスになるまで、待機します。
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ServiceController クラス
System.ServiceProcess 名前空間
ServiceBase クラス
ServiceControllerStatus
ServiceType

ServiceController メンバ

Windows サービス表し実行中のサービスまたは停止したサービスへの接続サービス操作、またはサービスに関する情報取得実現します

ServiceController データ型公開されるメンバを以下の表に示します


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド ServiceController オーバーロードされます。 ServiceController クラス新しインスタンス初期化します。
パブリック プロパティパブリック プロパティ
( プロテクト プロパティ参照)
  名前 説明
パブリック プロパティ CanPauseAndContinue サービス一時中断および再開できるかどうかを示す値を取得します
パブリック プロパティ CanShutdown システムシャットダウン時にサービスにそれを通知する必要があるかどうかを示す値を取得します
パブリック プロパティ CanStop サービスをいったん開始してから停止できるかどうかを示す値を取得します
パブリック プロパティ Container  Component格納している IContainer を取得します。(Component から継承されます。)
パブリック プロパティ DependentServices この ServiceController インスタンス関連付けられたサービス依存している一連のサービス取得します
パブリック プロパティ DisplayName サービス表示名取得または設定します
パブリック プロパティ MachineName このサービス常駐しているコンピュータの名前を取得または設定します
パブリック プロパティ ServiceHandle サービスハンドル取得します
パブリック プロパティ ServiceName このインスタンス参照するサービス識別する名前を取得または設定します
パブリック プロパティ ServicesDependedOn 対象となるサービス依存している一連のサービス
パブリック プロパティ ServiceType 対象となるオブジェクト参照するサービスの種類取得します
パブリック プロパティ Site  Component の ISite を取得または設定します。(Component から継承されます。)
パブリック プロパティ Status 対象となるインスタンス参照するサービスステータス取得します
プロテクト プロパティプロテクト プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド参照)
  名前 説明
パブリック メソッド Close 対象となる ServiceController インスタンスサービスか切断しインスタンス割り当てたすべてのリソース解放します。
パブリック メソッド Continue サービス一時中断された後に、続行します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信使用するプロキシ生成必要な情報をすべて格納しているオブジェクト作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Dispose オーバーロードされます。  
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 (Object から継承されます。)
パブリック メソッド ExecuteCommand サービスカスタム コマンド実行します
パブリック メソッド GetDevices オーバーロードされますコンピュータデバイス ドライバ サービス取得します
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 (Object から継承されます。)
パブリック メソッド GetLifetimeService  対象インスタンス有効期間ポリシー制御する現在の有効期間サービス オブジェクト取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetServices オーバーロードされますコンピュータデバイス以外のドライバ サービス、およびドライバ以外のサービス取得します
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象インスタンス有効期間ポリシー制御する有効期間サービス オブジェクト取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Pause サービス操作中断します
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド Refresh すべてのプロパティ値を現在の値に設定して更新します
パブリック メソッド Start オーバーロードされますサービス開始します
パブリック メソッド Stop このサービスと、このサービス依存しているすべてのサービス停止します
パブリック メソッド ToString  Component の名前を格納している String返します (存在する場合)。このメソッドオーバーライドできません。 (Component から継承されます。)
パブリック メソッド WaitForStatus オーバーロードされますサービス指定したステータスになるまで、待機します。
プロテクト メソッドプロテクト メソッド
パブリック イベントパブリック イベント
参照参照

関連項目

ServiceController クラス
System.ServiceProcess 名前空間
ServiceBase クラス
ServiceControllerStatus
ServiceType



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ServiceController」の関連用語

ServiceControllerのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ServiceControllerのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS