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
-
요소의 현재 상태. 이 속성은 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 |
|
DLL |
|