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_ComputerSystemの Name プロパティです。
-
-
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
-
要素の現在の状態。 このプロパティは 、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] プロパティ値は、結合されたアプリケーション状態の値を示します。 これは、次のいずれかの値になります。
Note
アプリケーションの状態は、 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 |
|
[DLL] |
|