共用方式為


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_ComputerSystemName屬性。

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

資料類型: uint16 陣列

存取類型:唯讀

限定詞: 覆寫 (「OperationalStatus」) , ArrayType (「Indexed」)

專案的目前狀態。 此屬性繼承自 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
WindowsVirtualization.V2.mof
DLL
Vmms.exe

另請參閱

CIM_LogicalDevice

CIM_LogicalDevice

Msvm_HeartbeatComponent