다음을 통해 공유


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 연결된 instance RequestedStatesSupported 속성에 포함된 값의 하위 집합입니다. 여기서 선택한 값은 CIM_EnabledLogicalElement 현재 상태의 함수입니다. 구현에서 가능한 값 집합을 현재 상태의 함수로 보급할 수 있는 경우 이 속성은 Null 이 아닐 수 있습니다. 구현에서 현재 상태의 함수로 가능한 값 집합을 확인할 수 없는 경우 이 속성은 Null 이 됩니다.

이 속성은 CIM_EnabledLogicalElement 상속됩니다.

사용 (2)

사용 안 함 (3)

종료 (4)

오프라인 (6)

테스트 (7)

연기 (8)

정지 (9)

다시 부팅 (10)

초기화 (11)

DMTF 예약됨 (.. )

캡션

데이터 형식: string

액세스 형식: 읽기 전용

개체에 대한 간단한 설명입니다. 이 속성은 CIM_ManagedElement 클래스에서 상속되며 항상 "하트비트"로 설정됩니다.

CommunicationStatus

데이터 형식: uint16

액세스 형식: 읽기 전용

기본 관리되는 요소와 통신하는 계측의 기능을 나타냅니다. 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

데이터 형식: boolean

액세스 형식: 읽기 전용

LastErrorCode에 보고된 오류가 이제 지워지는지 여부를 나타냅니다. 이 속성은 CIM_LogicalDevice 상속되지만 사용되지 않습니다.

ErrorDescription

데이터 형식: string

액세스 형식: 읽기 전용

LastErrorCode에 기록된 오류에 대한 자세한 정보와 수행할 수 있는 수정 작업에 대한 정보를 제공하는 문자열입니다. 이 속성은 CIM_LogicalDevice 상속되지만 사용되지 않습니다.

HealthState

데이터 형식: uint16

액세스 형식: 읽기 전용

요소의 현재 상태입니다. 이 속성은 CIM_ManagedSystemElement 상속되며 항상 5(확인)로 설정됩니다.

IdentifyingDescriptions

데이터 형식: 문자열 배열

액세스 형식: 읽기 전용

OtherIdentifyingInfo 속성 배열의 항목 뒤에 설명 및 세부 정보를 제공하는 자유 형식 문자열 배열입니다. 이 속성은 CIM_LogicalDevice 상속되지만 사용되지 않습니다.

InstallDate

데이터 형식: datetime

액세스 형식: 읽기 전용

통합 서비스가 가상 머신에 설치된 날짜 및 시간입니다. 이 속성은 CIM_ManagedSystemElement 상속됩니다.

InstanceID

데이터 형식: 문자열

액세스 형식: 읽기 전용

한정자: Key

이 클래스의 instance 고유하게 식별합니다. 이 속성은 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] 속성 값에 사용할 수 있는 값입니다.

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)

가상 머신 내의 애플리케이션 중 하나 이상이 위험 상태에 있습니다.

통신 시간 초과 (32783)

게스트 구성 요소의 응답을 기다리는 시간이 초과되었습니다.

통신 실패 (32784)

게스트 구성 요소와 통신하지 못했습니다.

OtherEnabledState

데이터 형식: 문자열

액세스 형식: 읽기 전용

EnabledState 속성이 1(기타)로 설정된 경우 요소의 사용 또는 사용 안 함 상태를 설명하는 문자열입니다. 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(해당 없음)로 설정됩니다.

상태

데이터 형식: 문자열

액세스 형식: 읽기 전용

개체의 현재 상태. 이 속성은 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

액세스 형식: 읽기 전용

instance 전환 중인 대상 상태를 나타냅니다. 이 속성은 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