Win32_Service クラス

Win32_ServiceWMI クラスは、Windows を実行しているコンピューター システム上のサービスを表します。

次の構文はマネージド オブジェクト フォーマット (MOF) のコードを単純化したもので、すべての継承されたプロパティを含みます。 プロパティとメソッドは、MOF の順序ではなく、アルファベット順です。

構文

[Dynamic, Provider("CIMWin32"), SupportsUpdate, UUID("{8502C4D9-5FBB-11D2-AAC1-006008C78BC7}"), DisplayName("Services"), AMENDMENT]
class Win32_Service : Win32_BaseService
{
  boolean  AcceptPause;
  boolean  AcceptStop;
  string   Caption;
  uint32   CheckPoint;
  string   CreationClassName;
  boolean  DelayedAutoStart;
  string   Description;
  boolean  DesktopInteract;
  string   DisplayName;
  string   ErrorControl;
  uint32   ExitCode;
  datetime InstallDate;
  string   Name;
  string   PathName;
  uint32   ProcessId;
  uint32   ServiceSpecificExitCode;
  string   ServiceType;
  boolean  Started;
  string   StartMode;
  string   StartName;
  string   State;
  string   Status;
  string   SystemCreationClassName;
  string   SystemName;
  uint32   TagId;
  uint32   WaitHint;
};

メンバー

Win32_Service クラスには、次の種類のメンバーがあります。

メソッド

Win32_Service クラスには、これらのメソッドがあります。

メソッド 説明
変更 サービスを変更します。
ChangeStartMode サービスの開始モードを変更します。
作成 新しいサービスを作成します。
削除 既存のサービスを削除します。
GetSecurityDescriptor サービスへのアクセスを制御するセキュリティ記述子を返します。
InterrogateService サービスの状態をサービス マネージャーに更新するように要求します。
PauseService サービスを一時停止状態にしようとします。
ResumeService 再開された状態でサービスの配置を試みます。
SetSecurityDescriptor サービスへのアクセスを制御するセキュリティ記述子の更新バージョンを書き込みます。
StartService サービスをスタートアップ状態にしようとします。
Stopservice サービスを停止状態にします。
UserControlService ユーザー定義コントロール コードをサービスに送信しようとします。

 

プロパティ

Win32_Service クラスには、これらのプロパティがあります。

AcceptPause

データ型: boolean

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|SERVICE_STATUS|dwControlsAccepted|SERVICE_ACCEPT_PAUSE_CONTINUE") 、DisplayName ("Service Accepts Pause")

サービスを一時停止できるかどうかを示します。

このプロパティは、 Win32_BaseServiceから継承されます。

AcceptStop

データ型: boolean

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|SERVICE_STATUS|dwControlsAccepted|SERVICE_ACCEPT_STOP") 、DisplayName ("Service Accepts Stop")

サービスを停止できるかどうかを示します。

このプロパティは、 Win32_BaseServiceから継承されます。

Caption

データ型: string

アクセスの種類: 読み取り専用

修飾子: MaxLen (64)、 DisplayName ("Caption")

サービスの簡単な説明 —1 行の文字列。

このプロパティは 、CIM_ManagedSystemElementから継承されます。

チェックポイント

データ型: uint32

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|SERVICE_STATUS|dwCheckPoint"),DisplayName ("Check Point Count")

サービスが定期的にインクリメントして、長時間の開始、停止、一時停止、または継続操作中に進行状況を報告する値。 たとえば、サービスは起動時に初期化の各ステップを完了すると、この値をインクリメントします。 サービスで操作を呼び出すユーザー インターフェイス プログラムは、この値を使用して、長い操作中のサービスの進行状況を追跡します。 この値は無効であり、サービスに開始、停止、一時停止、または続行操作が保留中でない場合は 0 にする必要があります。

CreationClassName

データ型: string

アクセスの種類: 読み取り専用

修飾子: CIM_KeyDisplayName ("クラス名")

インスタンスの作成で使用される継承チェーンに表示される最初の具象クラスの名前。 クラスの他のキー プロパティと共に使用すると、このプロパティを使用すると、このクラスとそのサブクラスのすべてのインスタンスを一意に識別できます。

このプロパティは、 CIM_Serviceから継承されます。

DelayedAutoStart

データ型: boolean

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|SERVICE_DELAYED_AUTO_START_INFO|fDelayedAutostart"), DisplayName ("Delayed Auto-Start")

True の場合、他の自動開始サービスが開始された後にサービスが開始され、さらに短い遅延が発生します。

Windows Server 2012 R2、Windows 8.1、Windows Server 2012、Windows 8、Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista: このプロパティは、Windows Server 2016およびWindows 10の前にサポートされていません.

説明

データ型: string

アクセスの種類: 読み取り専用

修飾子: DisplayName ("Description")

オブジェクトの説明。

このプロパティは 、CIM_ManagedSystemElementから継承されます。

DesktopInteract

データ型: boolean

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|QUERY_SERVICE_CONFIG|dwServiceType|SERVICE_INTERACTIVE_PROCESS")、 DisplayName ("Interacts with Desktop")

サービスがデスクトップ上のウィンドウを作成または通信し、ユーザーと何らかの方法で対話できるかどうかを示します。 対話型サービスは、ローカル システム アカウントで実行する必要があります。 ほとんどのサービスは対話型ではありません。つまり、ユーザーと何らかの方法で通信することはありません。

このプロパティは、 Win32_BaseServiceから継承されます。

DisplayName

データ型: string

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|QUERY_SERVICE_CONFIG|lpDisplayName"), DisplayName ("Display Name")

サービス スナップインに表示されるサービスの名前。 この文字列の長さは最大 256 文字です。 表示名とサービス名 (レジストリに格納されている) は常に同じではないことに注意してください。 たとえば、DHCP クライアント サービスのサービス名は Dhcp ですが、表示名は DHCP クライアントです。 名前は、Service Control Manager で大文字と小文字が保持されます。 ただし、 DisplayName 比較では常に大文字と小文字が区別されません。

制約: Name プロパティと同じ値を受け入れます。

例: "Atdisk"

このプロパティは、 Win32_BaseServiceから継承されます。

ErrorControl

データ型: string

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|QUERY_SERVICE_CONFIG|dwErrorControl"), DisplayName ("起動エラーの重大度")

起動時にこのサービスの開始に失敗した場合のエラーの重大度。 値は、エラーが発生した場合にスタートアップ プログラムによって実行されるアクションを示します。 すべてのエラーは、コンピューター システムによって記録されます。

Ignore ("Ignore")

ユーザーへの通知が行われません。

Normal ("Normal")

ユーザーへの通知が行われます。 通常、これは問題をユーザーに通知するメッセージ ボックス表示になります。

重大 ("重大")

システムは最後の正しい構成で再起動されます。

Critical ("Critical")

正しい構成でシステムの再起動が試行されます。 サービスが 2 回目の開始に失敗した場合、スタートアップは失敗します。

不明 ("不明")

エラーの重大度が不明です。

このプロパティは、 Win32_BaseServiceから継承されます。

ExitCode

データ型: uint32

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|SERVICE_STATUS|dwWin32ExitCode"), DisplayName ("Exit Code")

サービスの開始または停止で発生したエラーを定義する Windows エラー コード。 このクラスで表されるサービスに固有のエラーが検出されると、このプロパティは ERROR_SERVICE_SPECIFIC_ERROR (1066) に設定され、そのエラーに関する情報は、 ServiceSpecificExitCode プロパティで利用できるようになります。 サービスは、この値を実行中 にNO_ERROR に設定し、通常の終了時にもう一度設定します。

このプロパティは、 Win32_BaseServiceから継承されます。

InstallDate

データ型: datetime

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("MIF.DMTF|ComponentID|001.5"), DisplayName ("インストール日")

Date オブジェクトがインストールされています。 このプロパティには、オブジェクトがインストールされていることを示す値は必要ありません。

このプロパティは、 CIM_ManagedSystemElementから継承されます。

Name

データ型: string

アクセスの種類: 読み取り専用

修飾子: キー

管理されている機能を示すサービスの一意識別子。 この機能は、 オブジェクトの Description プロパティで説明されています。

このプロパティは、 CIM_ManagedSystemElementから継承されます。

PathName

データ型: string

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|QUERY_SERVICE_CONFIG|lpBinaryPathName"), DisplayName ("ファイル パス名")

サービスを実装するサービス バイナリ ファイルへの完全修飾パス。

例: "\SystemRoot\System32\drivers\afd.sys"

このプロパティは、 Win32_BaseServiceから継承されます。

ProcessId

データ型: uint32

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|SERVICE_STATUS_PROCESS|dwProcessId"), DisplayName ("Process Id")

サービスのプロセス識別子。

例: 324

ServiceSpecificExitCode

データ型: uint32

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|SERVICE_STATUS|dwServiceSpecificExitCode"), DisplayName ("サーバー固有の終了コード")

サービスの開始中または停止中に発生するエラーのサービス固有のエラー コード。 終了コードは、このクラスによって表されるサービスによって定義されます。 この値は、 ExitCode プロパティの値が ERROR_SERVICE_SPECIFIC_ERROR (1066) の場合にのみ設定されます。

このプロパティは、 Win32_BaseServiceから継承されます。

ServiceType

データ型: string

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|QUERY_SERVICE_CONFIG|dwServiceType"), DisplayName ("Service Type")

呼び出し側プロセスに提供されるサービスの種類です。

値は次のとおりです。

カーネル ドライバー ("カーネル ドライバー")

ファイル システム ドライバー ("ファイル システム ドライバー")

アダプター ("アダプター")

Recognizer ドライバー ("Recognizer Driver")

独自のプロセス ("独自のプロセス")

共有プロセス ("共有プロセス")

対話型プロセス ("対話型プロセス")

このプロパティは、 Win32_BaseServiceから継承されます。

Started

データ型: ブール値

アクセスの種類: 読み取り専用

修飾子: DisplayName ("Started")

サービスが開始されているかどうかを示します。

このプロパティは 、CIM_Serviceから継承されます。

StartMode

データ型: string

アクセスの種類: 読み取り専用

修飾子: DisplayName ("開始モード")

Windows 基本サービスの開始モード。

ブート ("Boot")

オペレーティング システム ローダーによって開始されたデバイス ドライバー (ドライバー サービスに対してのみ有効)。

システム ("System")

オペレーティング システムの初期化プロセスによって開始されたデバイス ドライバー。 この値は、ドライバー サービスに対してのみ指定できます。

Auto ("Auto")

システムの起動時にサービス コントロール マネージャーによって自動的に開始されるサービスです。 ユーザーがログオンしない場合でも、自動サービスが開始されます。

手動 ("Manual")

プロセスが StartService メソッドを呼び出すときにサービス コントロール マネージャーによって開始されるサービス。 これらのサービスは、ユーザーがログオンして起動しない限り開始されません。

無効 ("無効")

StartMode が Auto または Manual に変更されるまで開始できないサービス。

このプロパティは、 CIM_Serviceから継承されます。

StartName

データ型: string

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|QUERY_SERVICE_CONFIG|lpServiceStartName"), DisplayName ("Starting Account Name")

サービスを実行するアカウント名。 サービスの種類によっては、アカウント名が "DomainName\Username" または UPN 形式 ("Username@DomainName") の形式である場合があります。 サービス プロセスは、実行時にこれら 2 つの形式のいずれかを使用してログに記録されます。 アカウントが組み込みのドメインに属している場合は、".\Username" を指定できます。 カーネルまたはシステム レベルのドライバーの場合、 StartName には、I/O システムがデバイス ドライバーの読み込みに使用するドライバー オブジェクト名 (つまり、"\FileSystem\Rdr" または "\Driver\Xns") が含まれます。 さらに、 NULL が 指定されている場合、ドライバーは、サービス名に基づいて I/O システムによって作成された既定のオブジェクト名で実行されます。

例: "DWDOM\管理"

このプロパティは、 Win32_BaseServiceから継承されます。

State

データ型: string

アクセスの種類: 読み取り/書き込み

修飾子: MappingStrings ("Win32API|サービス構造|SERVICE_STATUS|dwCurrentState "), DisplayName ("State")

基本サービスの現在の状態。

値は次のとおりです。

停止 ( "Stopped")

Start Pending ("Start Pending")

保留中の停止 ("保留中の停止")

実行中 ("Running")

Continue Pending ("Continue Pending")

保留中の一時停止 ("保留中の一時停止")

一時停止 ("一時停止")

不明 ("不明")

Windows Server 2008 と Windows Vista: このプロパティは、Windows 7 および Windows Server 2008 R2 より前の値の取得のみ可能です。

このプロパティは、 Win32_BaseServiceから継承されます。

状態

データ型: string

アクセスの種類: 読み取り専用

修飾子: MaxLen (10)、 DisplayName ("Status")

オブジェクトの現在の状態。 さまざまな操作状態と非操作状態を定義できます。 運用状態には、"OK"、"Degraded"、"Pred Fail" (SMART 対応ハード ディスク ドライブなどの要素が正常に機能している可能性がありますが、近い将来に障害が予測される可能性があります) が含まれます。 非操作状態には、"Error"、"Starting"、"Stopping"、および "Service" が含まれます。 後者の "サービス" は、ディスクのミラー再チェックイン、ユーザーアクセス許可リストの再読み込み、またはその他の管理作業中に適用される可能性があります。 このような作業がすべてオンラインであるわけではありませんが、マネージド要素は "OK" でも、他の状態の 1 つでもありません。

このプロパティは 、CIM_ManagedSystemElementから継承されます。

値は次のとおりです。

OK ("OK")

エラー ("Error")

機能低下 ("Degraded")

不明 ("不明")

Pred Fail ("Pred Fail")

開始 中 ("Starting")

停止 中 ("停止中")

サービス ("Service")

ストレス ( "ストレス")

NonRecover ("NonRecover")

連絡先なし ("連絡先なし")

Lost Comm ("Lost Comm")

SystemCreationClassName

データ型: string

アクセスの種類: 読み取り専用

修飾子: 伝達 ( "CIM_SystemCreationClassName")、 CIM_KeyDisplayName ("システム クラス名")

このサービスをホストするシステムの名前を入力します。

このプロパティは、 CIM_Serviceから継承されます。

Systemname

データ型: string

アクセスの種類: 読み取り専用

修飾子: 伝達 ( "CIM_SystemName")、 CIM_KeyDisplayName ("システム名")

このサービスをホストするシステムの名前。

このプロパティは、 CIM_Serviceから継承されます。

TagId

データ型: uint32

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|QUERY_SERVICE_CONFIG|dwTagId"), DisplayName ("Tag Id")

グループ内のこのサービスの一意のタグ値。 値 0 (ゼロ) は、サービスにタグがないことを示します。 タグは、次の場所にあるレジストリでタグ順序ベクトルを指定することで、読み込み注文グループ内でサービスの起動を注文するために使用できます。

Hkey_local_machine\システム\CurrentControlSet\コントロール\    GroupOrderList

タグは、ブート モードまたはシステム起動モードを持つカーネル ドライバーおよびファイル システム ドライバーの開始の種類のサービスに対してのみ評価されます。

このプロパティは、 Win32_BaseServiceから継承されます。

WaitHint

データ型: uint32

アクセスの種類: 読み取り専用

修飾子: MappingStrings ("Win32API|サービス構造|SERVICE_STATUS|dwWaitHint"), DisplayName ("推定待機時間")

保留中の開始、停止、一時停止、または続行操作に必要な推定時間 (ミリ秒単位)。 指定した時間が経過すると、サービスは、増加した CheckPoint 値または CurrentState の変更を使用して SetServiceStatus メソッドを次に呼び出します。 WaitHint で指定された時間が経過し、CheckPoint がインクリメントされていない場合、または CurrentState が変更されていない場合、サービス コントロール マネージャーまたはサービス制御プログラムはエラーが発生したと見なします。

注釈

Win32_Service クラスは、Win32_BaseServiceから派生します。

特定のコンピューターを管理する方法は、コンピューターが果たす役割によって大きく異なります。 たとえば、通常、DNS サーバーと DHCP サーバーの異なる側面を監視します。 特定のコンピューターがデータベース サーバー、電子メール サーバー、マルチメディア サーバーのいずれであるかを示すプロパティは 1 つもありませんが、多くの場合、コンピューターにインストールされているサービスを識別することで、コンピューターが果たす役割を特定できます。

大規模な組織では、主要なサービス (電子メールなど) の 1 つだけが 1 台のコンピューターにインストールされる可能性があります。 メール サーバーが Microsoft® Windows Media® Technologies プレーヤー ファイルのサーバーとしても実行されることは通常とは異なります。 このため、コンピューターにインストールされているサービスを識別すると、ネットワーク内のコンピューターの役割を特定するのに役立ちます。 Microsoft® Exchange Server サービスがコンピューターにインストールされ、実行されている場合は、通常、このコンピューターがメール サーバーとして機能すると仮定しても安全です。

WMI Win32_Service クラスを使用して、コンピューターにインストールされているサービスを列挙できます。 さらに、このクラスを使用して、これらのサービスが現在実行されているかどうかを判断し、そのサービスとその構成方法に関するその他の必要な情報を返すことができます。

サービス アプリケーションは、サービス コントロール マネージャー (SCM) のインターフェイス規則に準拠しており、サービス コントロール パネル ユーティリティを使用してシステム起動時にユーザーが自動的に起動するか、Windows API に含まれるサービス機能を使用するアプリケーションによって開始できます。 コンピューターにログオンしているユーザーがいない場合、サービスを開始できます。

リモート コンピューターから接続しているユーザーは、このクラスを列挙できるようにするには 、SC_MANAGER_CONNECT 特権が有効になっている必要があります。 詳細については、「 サービス セキュリティとアクセス権」を参照してください。

TechNet ギャラリーの PowerShell サンプルデバイス のグループでサービス 'State' を返す PS- WMI クエリ では、 Win32_Service を使用して Active Directory からデバイスの一覧を作成し、実行されている特定のサービスに対して ping で応答する各デバイスに対してクエリを実行します。

TechNet ギャラリーのサーバー レポート PowerShell サンプルでは、Win32_Serviceを使用してサーバー情報を収集し、ドキュメントに公開Word。

次の VBScript コード サンプルでは、現在インストールされているすべてのサービスが表示されます。

for each Service in _ 
    GetObject("winmgmts:").InstancesOf ("Win32_Service")
 WScript.Echo ""
 WScript.Echo Service.Name

 description = Service.Description 
 if IsNull(description) then description = "<No description>"

 pathName = Service.PathName
 if IsNull(pathName) then pathName = "<No path>"

 startName = Service.StartName
 if IsNull(startName) then startName = "<None>"

 WScript.Echo "  Description:  ", description
 WScript.Echo "  Executable:   ", pathName
 WScript.Echo "  Status:       ", Service.Status
 WScript.Echo "  State:        ", Service.State
 WScript.Echo "  Start Mode:   ", Service.StartMode
 Wscript.Echo "  Start Name:   ", startName
next

次の VBScript コード サンプルでは、指定したコンピューターで一時停止、実行、停止されたサービスについて説明します。

On Error Resume Next
 StateString = "Paused,Running,Stopped"
 StateArray = Split(StateString, ",", -1, 1) 
 ComputerName = InputBox("Enter the computer name", "List Service", "localhost")

 For x = 0 to Ubound (StateArray)
 Set Services = GetObject("winmgmts:\\" & ComputerName & "\Root\CIMv2").ExecQuery("SELECT * FROM Win32_Service where State='" & StateArray(x) & "'")
 
 For Each Service in Services
  SList = SList & Service.Name & VBlf 
 Next

 WScript.Echo StateArray(x) & " Services: " & VBlf & SList
 SList = ""

Next

次の Perl スクリプトは、 Win32_Serviceのインスタンスから実行中のサービスの一覧を取得する方法を示しています。

use strict;
use Win32::OLE;

my ( $ServiceSet, $Service );

eval { $ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\Root\\CIMv2")->
 ExecQuery("SELECT * FROM Win32_Service WHERE State=\"Running\""); };
unless ($@)
{
 print "\n";
 foreach $Service (in $ServiceSet) 
 {
  print $Service->{Name}, "\n";
  if( $Service->{Description} ) 
   {
    print "  $Service->{Description}\n";
   }
  else
   {
    print "  <No description>\n";
   }
  print "  Process ID: ", $Service->{ProcessId}, "\n";
  print "  Start Mode: ", $Service->{StartMode}, "\n";
  print "\n";
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

次の c# サンプルでは、 Microsoft.Management.Infrastructure を使用して、ローカル コンピューター上で実行中のすべてのサービスを取得します。

static void QueryInstanceFunc()
        {
 
            CimSession session = CimSession.Create("localHost");
            IEnumerable<CimInstance> queryInstance = session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_Service");

            foreach (CimInstance cimObj in queryInstance)
            {
                Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString());
                Console.WriteLine(cimObj.CimInstanceProperties["State"].ToString());
                Console.WriteLine(cimObj.CimInstanceProperties["Status"].ToString());
                
                //Console.WriteLine(cimObj.CimInstanceProperties["NetworkAddress"].ToString());
                Console.WriteLine();

            }

            Console.ReadLine();
        }
    

次の C# コード サンプルでは 、System.Management 名前空間を使用して、ローカル コンピューター上で実行中のすべてのサービスを取得します。

注意

System.Management には、WMI へのアクセスに使用される元のクラスが含まれています。ただし、これらは低速と見なされ、通常は Microsoft.Management.Infrastructure と同様にスケーリングされません。

 

using System.Management;
...
        static void oldSchoolQueryInstanceFunc()
        {

            ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_Service");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);


            ManagementObjectCollection queryCollection = searcher.Get();
            foreach (ManagementObject m in queryCollection)
            {
                Console.WriteLine("ServiceName : {0}", m["Name"]);
                Console.WriteLine("State : {0}", m["State"]);
                Console.WriteLine("Status : {0}", m["Status"]);
                Console.WriteLine();
            }

            Console.ReadLine();


        }

要件

要件
サポートされている最小のクライアント
Windows Vista
サポートされている最小のサーバー
Windows Server 2008
名前空間
Root\CIMV2
MOF
CIMWin32.mof
[DLL]
CIMWin32.dll

こちらもご覧ください

Win32_BaseService

オペレーティング システム クラス

WMI タスク: サービス