Поделиться через


класс 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 Запрашивает изменение состояния.
Reset Сбрасывает виртуальное устройство.
Свойства RestoreProperties Этот метод не поддерживается.
Saveproperties Этот метод не поддерживается.
SetPowerState Этот метод не поддерживается.

Свойства

Класс Msvm_HeartbeatComponent имеет эти свойства.

Дополнительная Доступность

Тип данных: массив uint16

Тип доступа: только для чтения

Любые дополнительные сведения о доступности и состоянии устройства. Это свойство наследуется от CIM_LogicalDevice и всегда имеет значение 6 (неприменимо).

Доступность

Тип данных: uint16

Тип доступа: только для чтения

Основная доступность и состояние устройства. Это свойство наследуется от CIM_LogicalDevice, но не используется.

AvailableRequestedStates

Тип данных: массив uint16

Тип доступа: только для чтения

Указывает возможные значения параметра RequestedState метода RequestStateChange , используемого для инициирования изменения состояния. Перечисленные значения будут подмножеством значений, содержащихся в свойстве RequestedStatesSupported связанного экземпляра CIM_EnabledLogicalElementCapabilities, где выбранные значения являются функцией текущего состояния CIM_EnabledLogicalElement. Это свойство может быть не равно Null , если реализация может объявить набор возможных значений как функцию текущего состояния. Это свойство будет иметь значение Null , если реализация не может определить набор возможных значений как функцию текущего состояния.

Это свойство наследуется от CIM_EnabledLogicalElement.

Включено (2)

Отключено (3)

Завершение работы (4)

В автономном режиме (6)

Тест (7)

Отложить (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 — это свойство NameMsvm_ComputerSystem , связанного с этим устройством.

ElementName

Тип данных: string

Тип доступа: только для чтения

Отображаемое имя объекта. Это свойство наследуется от CIM_ManagedElement и всегда имеет значение Heartbeat.

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

Тип данных: string

Тип доступа: только для чтения

Квалификаторы: Ключ

Уникально идентифицирует экземпляр этого класса. Это свойство наследуется от CIM_ManagedElement.

LastErrorCode

Тип данных: uint32

Тип доступа: только для чтения

Последний код ошибки, сообщаемый логическим устройством. Это свойство наследуется от CIM_LogicalDevice, но не используется.

MaxQuiesceTime

Тип данных: uint64

Тип доступа: только для чтения

Это свойство использовать не рекомендуется. Это свойство наследуется от CIM_LogicalDevice, но не используется.

имя;

Тип данных: string

Тип доступа: только для чтения

Метка, по которой известен объект. Это свойство наследуется от CIM_ManagedSystemElement.

OperatingStatus

Тип данных: uint16

Тип доступа: только для чтения

Предоставляет сведения о текущем состоянии для рабочего состояния элемента и может использоваться для предоставления дополнительных сведений о значении свойства EnabledState . Значение NULL указывает, что это свойство не реализовано. Это свойство наследуется от CIM_ManagedSystemElement.

OperationalStatus

Тип данных: массив uint16

Тип доступа: только для чтения

Квалификаторы: Override ("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

Тип данных: string

Тип доступа: только для чтения

Строка, описывающая состояние включенного или отключенного элемента, когда свойству EnabledState присвоено значение 1 (Other). Это свойство должно иметь значение Null , если свойство EnabledState имеет любое значение, отличное от 1. Это свойство наследуется от CIM_EnabledLogicalElement и всегда имеет значение Null.

OtherIdentifyingInfo

Тип данных: строковый массив

Тип доступа: только для чтения

Любые дополнительные данные, помимо сведений об идентификаторе устройства, которые можно использовать для идентификации логического устройства. Это свойство наследуется от 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 , но не используется.

Описания состояния

Тип данных: строковый массив

Тип доступа: только для чтения

Строки, описывающие различные значения массива 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# получает состояние работоспособности приложения виртуальной машины. Эти служебные программы можно найти в разделе Общие служебные программы для примеров виртуализации (версия 2).

Важно!

Для правильной работы следующий код должен выполняться с правами администратора.

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