英語で読む

次の方法で共有


Msvm_HeartbeatComponent クラス

定期サービスの状態を表します。これは、一定の間隔でハートビートを報告することで仮想マシンの状態を監視します。

次の構文は、簡略化されたマネージ オブジェクト形式 (MOF) コードであり、継承されたすべてのプロパティが含まれています。

構文

[Dynamic, Provider("VmmsWmiInstanceAndMethodProvider"), AMENDMENT]
class Msvm_HeartbeatComponent : CIM_LogicalDevice
{
  string   InstanceID;
  string   Caption = "Heartbeat";
  string   Description = "Microsoft Heartbeat Service";
  string   ElementName = "Heartbeat";
  datetime InstallDate;
  string   Name;
  uint16   OperationalStatus[];
  string   StatusDescriptions[];
  string   Status;
  uint16   HealthState = 5;
  uint16   CommunicationStatus;
  uint16   DetailedStatus;
  uint16   OperatingStatus;
  uint16   PrimaryStatus;
  uint16   EnabledState = 2;
  string   OtherEnabledState;
  uint16   RequestedState = 12;
  uint16   EnabledDefault = 7;
  datetime TimeOfLastStateChange;
  uint16   AvailableRequestedStates[];
  uint16   TransitioningToState;
  string   SystemCreationClassName = "Msvm_ComputerSystem";
  string   SystemName;
  string   CreationClassName = "Msvm_HeartbeatComponent";
  string   DeviceID = "Microsoft:VMGUID\GUID";
  boolean  PowerManagementSupported;
  uint16   PowerManagementCapabilities[];
  uint16   Availability;
  uint16   StatusInfo;
  uint32   LastErrorCode;
  string   ErrorDescription;
  boolean  ErrorCleared;
  string   OtherIdentifyingInfo[];
  uint64   PowerOnHours;
  uint64   TotalPowerOnHours;
  string   IdentifyingDescriptions[];
  uint16   AdditionalAvailability[] = 6;
  uint64   MaxQuiesceTime;
};

メンバー

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

メソッド

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

メソッド 説明
EnableDevice このメソッドはサポートされていません。
OnlineDevice このメソッドはサポートされていません。
QuiesceDevice このメソッドはサポートされていません。
RequestStateChange 状態の変更を要求します。
リセット 仮想デバイスをリセットします。
RestoreProperties このメソッドはサポートされていません。
SaveProperties このメソッドはサポートされていません。
SetPowerState このメソッドはサポートされていません。

プロパティ

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

AdditionalAvailability

データ型: uint16 配列

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

デバイスの追加の可用性と状態。 このプロパティは CIM_LogicalDeviceから継承され、常に 6 (適用不可) に設定されます。

可用性

データ型: uint16

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

デバイスのプライマリ可用性と状態。 このプロパティは CIM_LogicalDeviceから継承されますが、使用されません。

AvailableRequestedStates

データ型: uint16 配列

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

状態変更の開始に使用される RequestStateChange メソッドの RequestedState パラメーターに使用できる値を示します。 一覧表示される値は、CIM_EnabledLogicalElementCapabilitiesの関連付けられたインスタンスの RequestedStatesSupported プロパティに含まれる 値のサブセットになります。ここで、選択した値は 、CIM_EnabledLogicalElementの現在の状態の関数です。 実装で使用可能な値のセットを現在の状態の関数としてアドバタイズできる場合、このプロパティは Null 以外にすることができます。 実装が現在の状態の関数として使用可能な値のセットを判断できない場合、このプロパティは Null になります

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

有効 (2)

無効 (3)

シャットダウン (4)

オフライン (6)

テスト (7)

Defer (8)

休止 (9)

再起動 (10)

リセット (11)

DMTF 予約済み (..)

Caption

データ型: string

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

オブジェクトの簡単な説明。 このプロパティは 、CIM_ManagedElement クラスから継承され、常に "Heartbeat" に設定されます。

CommunicationStatus

データ型: uint16

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

基になるマネージド要素と通信するインストルメンテーションの機能を示します。 Null 値は、このプロパティが実装されていないことを示します。 このプロパティは 、CIM_ManagedSystemElementから継承されます。

CreationClassName

データ型: string

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

スコープ システムの作成クラス名。 このプロパティは CIM_LogicalDeviceから継承され、常に "Msvm_HeartbeatComponent" に設定されます。

説明

データ型: string

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

オブジェクトの説明。 このプロパティは CIM_ManagedElementから継承され、常に "Microsoft Heartbeat Service" に設定されます。

DetailedStatus

データ型: uint16

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

PrimaryStatus プロパティと、追加の状態の詳細を補完します。 Null 値は、このプロパティが実装されていないことを示します。 このプロパティは 、CIM_ManagedSystemElementから継承されます。

DeviceID

データ型: string

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

論理デバイスに一意の名前を付けるアドレスまたはその他の識別情報。 このプロパティはCIM_LogicalDeviceから継承され、常に "Microsoft:VMGUID\GUID" に設定されます。ここで、VMGUID は、このデバイスに関連付けられているMsvm_ComputerSystemName プロパティです。

ElementName

データ型: string

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

オブジェクトの表示名。 このプロパティは CIM_ManagedElementから継承され、常に "Heartbeat" に設定されます。

EnabledDefault

データ型: uint16

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

このプロパティは CIM_EnabledLogicalElementから継承され、常に 7 (既定値なし) に設定されます。

EnabledState

データ型: uint16

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

要素の有効および無効の状態。 このプロパティは 、CIM_EnabledLogicalElement から継承され、次のいずれかの値になります。

説明
有効
2
要素が実行中です。
Disabled
3
要素はオフになっています。

ErrorCleared

データ型: boolean

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

LastErrorCode で報告されたエラーがクリアされたかどうかを示します。 このプロパティは CIM_LogicalDevice から継承されますが、使用されません。

ErrorDescription

データ型: string

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

LastErrorCode に記録されたエラーの詳細と、実行できる修正アクションに関する情報を提供する文字列。 このプロパティは CIM_LogicalDevice から継承されますが、使用されません。

HealthState

データ型: uint16

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

要素の現在の正常性。 このプロパティは CIM_ManagedSystemElementから継承され、常に 5 (OK) に設定されます。

IdentifyingDescriptions

データ型: 文字列 配列

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

OtherIdentifyingInfo プロパティ配列のエントリの背後にある説明と詳細を提供する自由形式の文字列の配列。 このプロパティは CIM_LogicalDeviceから継承されますが、使用されません。

InstallDate

データ型: datetime

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

統合サービスが仮想マシンにインストールされた日時。 このプロパティは 、CIM_ManagedSystemElementから継承されます。

InstanceID

データ型: string

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

修飾子: キー

このクラスのインスタンスを一意に識別します。 このプロパティは、 CIM_ManagedElementから継承されます。

LastErrorCode

データ型: uint32

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

論理デバイスによって報告された最後のエラー コード。 このプロパティは CIM_LogicalDeviceから継承されますが、使用されません。

MaxQuiesceTime

データ型: uint64

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

このプロパティは非推奨とされました。 このプロパティは CIM_LogicalDeviceから継承されますが、使用されません。

名前

データ型: string

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

オブジェクトが認識されるラベル。 このプロパティは 、CIM_ManagedSystemElementから継承されます。

OperatingStatus

データ型: uint16

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

要素の操作条件の現在の状態情報を提供し、 EnabledState プロパティの値に関してより詳細な情報を提供するために使用できます。 Null 値は、このプロパティが実装されていないことを示します。 このプロパティは 、CIM_ManagedSystemElementから継承されます。

OperationalStatus

データ型: uint16 配列

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

修飾子: オーバーライド ("OperationalStatus")、 ArrayType ("Indexed")

要素の現在の状態。 このプロパティは 、CIM_ManagedSystemElementから継承されます。

OperationalStatus[0] プロパティ値に使用できる値を次に示します。

OK (2)

サービスは正常に動作しています。 OperationalStatus[1] プロパティと StatusDescriptions[1] プロパティの値には、詳細情報が含まれている場合があります。

機能低下 (3)

サービスは正常に動作していますが、ゲスト サービスは互換性のある通信プロトコル バージョンをネゴシエートしました。 OperationalStatus[1] プロパティと StatusDescriptions[1] プロパティの値には、詳細情報が含まれている場合があります。

回復不可能なエラー (7)

ゲストは、互換性のあるプロトコル バージョンをサポートしていません。 OperationalStatus[1] プロパティと StatusDescriptions[1] プロパティの値には、詳細情報が含まれている場合があります。

連絡先なし (12)

ゲスト サービスがインストールされていないか、まだ接続されていません。

失われた通信 (13)

ゲスト サービスが正常に応答しなくなりました。

一時停止 ( 15)

仮想マシンが一時停止しています。

OperationalStatus[1] プロパティ値は、結合されたアプリケーション状態の値を示します。 これは、次のいずれかの値になります。

注意

アプリケーションの状態は、 SetApplicationState メソッドを使用して仮想マシンで設定されます。

OK (2)

仮想マシン内で実行されているアプリケーションは正常に動作しています。

プロトコルの不一致 (32775)

ゲストコンポーネントとホストコンポーネントは、異なるプロトコルバージョンを実行しています。

アプリケーション クリティカル状態 (32782)

仮想マシン内の 1 つ以上のアプリケーションが重大な状態です。

通信のタイムアウト (32783)

ゲスト コンポーネントからの応答を待機中にタイムアウトしました。

通信に失敗しました (32784)

ゲスト コンポーネントとの通信に失敗しました。

OtherEnabledState

データ型: string

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

EnabledState プロパティが 1 (Other) に設定されている場合の要素の有効または無効の状態を表す文字列。 EnabledState プロパティが 1 以外の値である場合、このプロパティは Null に設定する必要があります。 このプロパティは CIM_EnabledLogicalElementから継承され、常に Null に設定 されます

OtherIdentifyingInfo

データ型: 文字列 配列

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

論理デバイスを識別するために使用できる、デバイス ID 情報以外の追加データ。 このプロパティは CIM_LogicalDevice から継承され、常に Null に設定 されます

PowerManagementCapabilities

データ型: uint16 配列

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

デバイスの電源管理機能。 このプロパティは CIM_LogicalDeviceから継承されますが、使用されません。

PowerManagementSupported

データ型: boolean

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

デバイスを電源管理できるかどうかを示します。 このプロパティは CIM_LogicalDeviceから継承されますが、使用されません。

PowerOnHours

データ型: uint64

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

最後の電源サイクル以降にこのデバイスの電源がオンになっている連続した時間数。 このプロパティは CIM_LogicalDevice から継承されますが、使用されません。

PrimaryStatus

データ型: uint16

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

高レベルの状態情報を提供します。 このプロパティは、 DetailedStatus プロパティと組み合わせて使用して、要素とそのサブコンポーネントの高レベルおよび詳細な正常性状態情報を提供する必要があります。 Null 値は、このプロパティが実装されていないことを示します。 このプロパティは 、CIM_ManagedSystemElementから継承されます。

RequestedState

データ型: uint16

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

要素に対して最後に要求された状態または目的の状態。 このプロパティは CIM_EnabledLogicalElementから継承され、常に 12 (適用できません) に設定されます。

状態

データ型: string

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

オブジェクトの現在の状態。 このプロパティは CIM_ManagedSystemElement から継承されますが、使用されません。

StatusDescriptions

データ型: 文字列 配列

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

さまざまな OperationalStatus 配列値を記述する文字列。 このプロパティは 、CIM_ManagedSystemElementから継承されます。

StatusInfo

データ型: uint16

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

論理デバイスの現在の状態。 このプロパティは CIM_LogicalDeviceから継承されますが、使用されません。

SystemCreationClassName

データ型: string

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

スコープ システムの作成クラス名。 このプロパティは CIM_LogicalDeviceから継承され、常に "Msvm_ComputerSystem" に設定されます。

Systemname

データ型: string

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

スコープ システムの名前。 このプロパティは 、CIM_LogicalDevice から継承され、このハートビート サービスに関連付けられている Msvm_ComputerSystem の名前です。

TimeOfLastStateChange

データ型: datetime

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

要素の有効な状態が最後に変更された日時。 このプロパティは CIM_EnabledLogicalElementから継承され、常に Null に設定 されます

TotalPowerOnHours

データ型: uint64

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

このデバイスの電源が入った合計時間数。 このプロパティは CIM_LogicalDeviceから継承されますが、使用されません。

TransitioningToState

データ型: uint16

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

インスタンスが遷移しているターゲットの状態を示します。 このプロパティは CIM_EnabledLogicalElementから継承されますが、使用されません。

解説

MSVM_HEARTBEATCOMPONENT クラスへのアクセスは、UAC フィルター処理によって制限される場合があります。 詳細については、「 ユーザー アカウント制御と WMI」を参照してください。

次の C# サンプルでは、仮想マシンのアプリケーションの正常性状態を取得します。 参照されるユーティリティについては、「 仮想化サンプルの一般的なユーティリティ (V2)」を参照してください

重要

正しく機能するには、次のコードを管理者特権で実行する必要があります。

private UInt16 OperationalStatusOk = 2;
private UInt16 OperationalStatusApplicationCriticalState = 32782;

/// <summary>
/// Gets the applications status in the VM.
/// </summary>
/// <param name="hostMachine">The hostname of the machine on which
/// the VM is running.</param>
/// <param name="vmName">The VM name.</param>
public
void
GetAppHealthStatus(
    string hostMachine,
    string vmName
    )
{
    ManagementScope scope = new ManagementScope(
        @"\\" + hostMachine + @"\root\virtualization\v2", null);

    ManagementObject heartBeatComponent = null;

    // Get the VM object and its heart beat component.
    using (ManagementObject vm = WmiUtilities.GetVirtualMachine(vmName, scope))
    using (ManagementObjectCollection heartBeatCollection =
        vm.GetRelated("Msvm_HeartbeatComponent", "Msvm_SystemDevice",
            null, null, null, null, false, null))
    {
        foreach (ManagementObject element in heartBeatCollection)
        {
            heartBeatComponent = element;
            break;
        }
    }

    if (heartBeatComponent == null)
    {
        Console.WriteLine("The VM is not running.");
        return;
    }

    using (heartBeatComponent)
    {
        UInt16[] operationalStatus = (UInt16[])heartBeatComponent["OperationalStatus"];
        UInt16 vmStatus = operationalStatus[0];

        if (vmStatus != OperationalStatusOk)
        {
            Console.WriteLine("The VM heartbeat status is not OK");
            return;
        }

        if (operationalStatus.Length != 2)
        {
            Console.WriteLine("The required Integration Components are not running " +
                "or not installed.");
            return;
        }

        UInt16 appStatus = operationalStatus[1];
        if (appStatus == OperationalStatusOk)
        {
            Console.WriteLine("The VM applications health status: OK");
        }
        else if (appStatus == OperationalStatusApplicationCriticalState)
        {
            Console.WriteLine("The VM applications health status: Critical");
        }
        else
        {
            throw new ManagementException("Unknown application health status");
        }
    }
}

要件

要件
サポートされている最小のクライアント
Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2012 [デスクトップ アプリのみ]
名前空間
Root\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
[DLL]
Vmms.exe

関連項目

CIM_LogicalDevice

CIM_LogicalDevice

Msvm_HeartbeatComponent