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

データ型: ブール値

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

修飾子: MappingStrings ("Win32API|サービス構造|SERVICE_STATUS|dwControlsAccepted|SERVICE_ACCEPT_PAUSE_CONTINUE")、 DisplayName ("サービスは一時停止を受け入れる")

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

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

AcceptStop

データ型: ブール値

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

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

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

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

Caption

データ型: 文字列

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

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

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

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

チェックポイント

データ型: uint32

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

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

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

CreationClassName

データ型: 文字列

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

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

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

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

DelayedAutoStart

データ型: ブール値

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

修飾子: 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前にサポートされていません。

説明

データ型: 文字列

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

修飾子: DisplayName ("Description")

オブジェクトの説明。

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

DesktopInteract

データ型: ブール値

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

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

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

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

表示名

データ型: 文字列

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

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

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

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

例: "Atdisk"

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

ErrorControl

データ型: 文字列

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

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

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

無視 ("無視")

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

標準 ("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から継承されます。

名前

データ型: 文字列

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

修飾子: キー

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

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

PathName

データ型: 文字列

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

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

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

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

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

ProcessId

データ型: uint32

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

修飾子: MappingStrings ("Win32API|サービス構造|SERVICE_STATUS_PROCESS|dwProcessId"), DisplayName ("プロセス ID")

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

例: 324

ServiceSpecificExitCode

データ型: uint32

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

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

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

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

ServiceType

データ型: 文字列

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

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

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

値は次のとおりです。

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

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

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

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

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

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

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

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

Started

データ型: ブール値

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

修飾子: DisplayName ("Started")

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

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

StartMode

データ型: 文字列

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

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

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

ブート ("Boot")

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

システム ("System")

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

Auto ("Auto")

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

Manual ("Manual")

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

Disabled ("Disabled")

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

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

StartName

データ型: 文字列

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

修飾子: MappingStrings ("Win32API|サービス構造|QUERY_SERVICE_CONFIG|lpServiceStartName")、 DisplayName ("開始アカウント名")

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

例: "DWDOM\Admin"

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

State

データ型: 文字列

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

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

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

値は次のとおりです。

Stopped ("Stopped")

Start Pending ("Start Pending")

Stop Pending ("Stop Pending")

実行中 ("Running")

Continue Pending ("Continue Pending")

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

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

不明 ("不明")

Windows Server 2008 および Windows Vista: このプロパティは、Windows 7 および Windows Server 2008 R2 の前に読み取り専用です。

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

状態

データ型: 文字列

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

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

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

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

値は次のとおりです。

OK ("OK")

エラー ("Error")

低下 ("低下")

不明 ("不明")

Pred Fail ("Pred Fail")

開始 中 ("Starting")

停止 中 ("停止中")

サービス ("Service")

Stressed ("Stressed")

NonRecover ("NonRecover")

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

Lost Comm ("Lost Comm")

SystemCreationClassName

データ型: 文字列

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

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

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

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

Systemname

データ型: 文字列

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

修飾子: 伝達 ( "CIM_SystemName")、 CIM_KeyDisplayName ("System Name")

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

このプロパティは、 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から派生します。

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

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

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

サービス アプリケーションは、Service Control Manager (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 名前空間を使用して、ローカル コンピューター上で実行中のすべてのサービスを取得します。

Note

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 タスク: サービス