Msvm_HeartbeatComponent 類別
代表活動訊號服務的狀態,其負責定期報告活動訊號來監視虛擬機器的狀態。
下列語法是簡化 Managed Object Format (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類別具有這些方法。
方法 | Description |
---|---|
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)
-
延遲 (8)
-
停止 (9)
-
重新開機 (10)
-
重設 (11)
-
DMTF 保留 (。。)
-
-
標題
-
-
資料類型: 字串
-
存取類型:唯讀
物件的簡短描述。 此屬性繼承自 CIM_ManagedElement 類別,且一律設定為 「活動訊號」。
-
-
CommunicationStatus
-
-
資料類型: uint16
-
存取類型:唯讀
指出檢測能夠與基礎 Managed 元素通訊。 Null值表示這個屬性未實作。 此屬性繼承自 CIM_ManagedSystemElement。
-
-
CreationClassName
-
-
資料類型: 字串
-
存取類型:唯讀
界定系統的建立類別名稱。 此屬性繼承自 CIM_LogicalDevice,而且一律會設定為 「Msvm_HeartbeatComponent」。
-
-
說明
-
-
資料類型: 字串
-
存取類型:唯讀
對物件的描述。 此屬性繼承自 CIM_ManagedElement,而且一律會設定為 「Microsoft 活動訊號服務」。
-
-
DetailedStatus
-
-
資料類型: uint16
-
存取類型:唯讀
以其他狀態詳細資料補充 PrimaryStatus 屬性。 Null值表示這個屬性未實作。 此屬性繼承自 CIM_ManagedSystemElement。
-
-
DeviceID
-
-
資料類型: 字串
-
存取類型:唯讀
用來唯一命名邏輯裝置的位址或其他識別資訊。 此屬性繼承自CIM_LogicalDevice,而且一律會設定為 「Microsoft:VMGUID\GUID」,其中VMGUID是與此裝置相關聯之Msvm_ComputerSystem的Name屬性。
-
-
ElementName
-
-
資料類型: 字串
-
存取類型:唯讀
物件的顯示名稱。 此屬性繼承自 CIM_ManagedElement,而且一律會設定為 「活動訊號」。
-
-
EnabledDefault
-
-
資料類型: uint16
-
存取類型:唯讀
此屬性繼承自 CIM_EnabledLogicalElement,而且一律會設定為 7 ([無預設) ]。
-
-
EnabledState
-
-
資料類型: uint16
-
存取類型:唯讀
專案的啟用和停用狀態。 此屬性繼承自 CIM_EnabledLogicalElement ,而且會是下列其中一個值。
值 意義 - Enabled
- 2
專案正在執行。 - 停用
- 3
專案已關閉。 -
-
ErrorCleared
-
-
資料類型: 布林值
-
存取類型:唯讀
指出 LastErrorCode 中回報的錯誤現在是否已清除。 此屬性繼承自 CIM_LogicalDevice ,但不會使用。
-
-
ErrorDescription
-
-
資料類型: 字串
-
存取類型:唯讀
字串,提供有關 LastErrorCode 中所記錄之錯誤的詳細資訊,以及可採取之任何更正動作的相關資訊。 此屬性繼承自 CIM_LogicalDevice ,但不會使用。
-
-
HealthState
-
-
資料類型: uint16
-
存取類型:唯讀
專案的目前健全狀況。 此屬性繼承自 CIM_ManagedSystemElement,且一律會設定為 5 (OK) 。
-
-
IdentifyingDescriptions
-
-
資料類型: 字串 陣列
-
存取類型:唯讀
自由格式字串的陣列,提供 OtherIdentificationInfo 屬性陣列中專案背後的說明和詳細資料。 此屬性繼承自 CIM_LogicalDevice,但不會使用。
-
-
InstallDate
-
-
資料類型: datetime
-
存取類型:唯讀
整合服務的安裝日期與時間。 此屬性繼承自 CIM_ManagedSystemElement。
-
-
InstanceID
-
-
資料類型: 字串
-
存取類型:唯讀
-
限定詞: 金鑰
唯一識別這個類別的實例。 此屬性繼承自 CIM_ManagedElement。
-
-
LastErrorCode
-
-
資料類型: uint32
-
存取類型:唯讀
邏輯裝置報告的最後一個錯誤碼。 此屬性繼承自 CIM_LogicalDevice,但不會使用。
-
-
MaxQuiesceTime
-
-
資料類型: uint64
-
存取類型:唯讀
這個屬性已被取代。 此屬性繼承自 CIM_LogicalDevice,但不會使用。
-
-
名稱
-
-
資料類型: 字串
-
存取類型:唯讀
已知物件的標籤。 此屬性繼承自 CIM_ManagedSystemElement。
-
-
OperatingStatus
-
-
資料類型: uint16
-
存取類型:唯讀
提供元素作業條件的目前狀態資訊,並可用來提供 有關 EnabledState 屬性值的詳細資料。 Null值表示這個屬性未實作。 此屬性繼承自 CIM_ManagedSystemElement。
-
-
OperationalStatus
-
專案的目前狀態。 此屬性繼承自 CIM_ManagedSystemElement。
以下是 OperationalStatus[0] 屬性值的可能值。
-
確定 (2)
-
服務正常運作。 OperationalStatus[1] 和StatusDescriptions[1] 屬性值可能包含詳細資訊。
-
降級 (3)
-
服務正常運作,但客體服務已交涉相容的通訊協定版本。 OperationalStatus[1] 和StatusDescriptions[1] 屬性值可能包含詳細資訊。
-
無法復原的錯誤 (7)
-
客體不支援相容的通訊協定版本。 OperationalStatus[1] 和StatusDescriptions[1] 屬性值可能包含詳細資訊。
-
沒有連絡人 (12)
-
客體服務尚未安裝或尚未連絡。
-
遺失通訊 (13)
-
客體服務不再正常回應。
-
暫停 (15)
-
虛擬機器已暫停。
OperationalStatus[1] 屬性值表示聯合的應用程式狀態值。 這會是下列其中一個值。
注意
應用程式的狀態是使用 SetApplicationState 方法在虛擬機器上設定。
確定 (2)
在虛擬機器內執行的應用程式正常運作。
通訊協定不相符 (32775)
客體和主機元件正在執行不同的通訊協定版本。
應用程式關鍵狀態 (32782)
虛擬機器內的一或多個應用程式處於重大狀態。
通訊逾時 (32783)
等候來賓元件的回應逾時。
通訊失敗 (32784)
無法與客體元件通訊。
OtherEnabledState
-
資料類型: 字串
-
存取類型:唯讀
字串,描述 EnabledState 屬性設定為 1 (Other) 時,元素的啟用或停用狀態。 當EnabledState屬性是 1 以外的任何值時,這個屬性必須設定為Null。 此屬性繼承自 CIM_EnabledLogicalElement,而且一律設定為 Null。
OtherIdentifyingInfo
-
資料類型: 字串 陣列
-
存取類型:唯讀
除了裝置識別碼資訊之外,可用來識別邏輯裝置的任何其他資料。 此屬性繼承自 CIM_LogicalDevice ,且一律設定為 Null。
PowerManagementCapabilities
-
資料類型: uint16 陣列
-
存取類型:唯讀
裝置的電源管理功能。 此屬性繼承自 CIM_LogicalDevice,但不會使用。
PowerManagementSupported
-
資料類型: 布林值
-
存取類型:唯讀
指出裝置是否可以受電源管理。 此屬性繼承自 CIM_LogicalDevice,但不會使用。
PowerOnHours
-
資料類型: uint64
-
存取類型:唯讀
自上次電源週期起,此裝置已開啟的連續時數。 此屬性繼承自 CIM_LogicalDevice ,但不會使用。
PrimaryStatus
-
資料類型: uint16
-
存取類型:唯讀
提供高階狀態資訊。 這個屬性應該與 DetailedStatus 屬性搭配使用,以提供元素及其子元件的高階和詳細的健全狀態資訊。 Null值表示這個屬性未實作。 此屬性繼承自 CIM_ManagedSystemElement。
RequestedState
-
資料類型: uint16
-
存取類型:唯讀
專案的最後一個要求或所需狀態。 此屬性繼承自 CIM_EnabledLogicalElement,而且一律設定為 12 (不適用) 。
狀態
-
資料類型: 字串
-
存取類型:唯讀
物件的目前狀態。 此屬性繼承自 CIM_ManagedSystemElement ,但未使用。
StatusDescriptions
-
資料類型: 字串 陣列
-
存取類型:唯讀
描述各種 OperationalStatus 陣列值的字串。 此屬性繼承自 CIM_ManagedSystemElement。
StatusInfo
-
資料類型: uint16
-
存取類型:唯讀
邏輯裝置的目前狀態。 此屬性繼承自 CIM_LogicalDevice,但不會使用。
SystemCreationClassName
-
資料類型: 字串
-
存取類型:唯讀
範圍系統的建立類別名稱。 此屬性繼承自 CIM_LogicalDevice,而且一律設定為 「Msvm_ComputerSystem」。
SystemName
-
資料類型: 字串
-
存取類型:唯讀
範圍系統的名稱。 這個屬性繼承自 CIM_LogicalDevice ,而且是與此活動訊號服務相關聯的 Msvm_ComputerSystem 名稱。
TimeOfLastStateChange
-
資料類型: datetime
-
存取類型:唯讀
上次變更專案啟用狀態的日期或時間。 此屬性繼承自 CIM_EnabledLogicalElement,而且一律設定為 Null。
TotalPowerOnHours
-
資料類型: uint64
-
存取類型:唯讀
此裝置已啟動的總時數。 此屬性繼承自 CIM_LogicalDevice,但不會使用。
TransitioningToState
-
資料類型: uint16
-
存取類型:唯讀
指出實例正在轉換的目標狀態。 此屬性繼承自 CIM_EnabledLogicalElement,但不會使用。
備註
UAC 篩選可能會限制 對Msvm_HeartbeatComponent 類別的存取。 如需詳細資訊,請參閱 使用者帳戶控制和 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 |
|