Partager via


Msvm_HeartbeatComponent classe

Représente l’état du service de pulsations, qui est chargé de surveiller l’état d’une machine virtuelle en signalant une pulsation à intervalles réguliers.

La syntaxe suivante est un code MOF (Managed Object Format) simplifié et inclut toutes les propriétés héritées.

Syntaxe

[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;
};

Membres

La classe Msvm_HeartbeatComponent a les types de membres suivants :

Méthodes

La classe Msvm_HeartbeatComponent a ces méthodes.

Méthode Description
EnableDevice Cette méthode n'est pas prise en charge.
OnlineDevice Cette méthode n'est pas prise en charge.
QuiesceDevice Cette méthode n'est pas prise en charge.
RequestStateChange Demande un changement d’état.
Réinitialiser Réinitialise l’appareil virtuel.
RestoreProperties Cette méthode n'est pas prise en charge.
SaveProperties Cette méthode n'est pas prise en charge.
SetPowerState Cette méthode n'est pas prise en charge.

Propriétés

La classe Msvm_HeartbeatComponent a ces propriétés.

AdditionalAvailability

Type de données : tableau uint16

Type d'accès : Lecture seule

Toute disponibilité et status supplémentaires de l’appareil. Cette propriété est héritée de CIM_LogicalDevice et est toujours définie sur 6 (Non applicable).

Disponibilité

Type de données : uint16

Type d'accès : Lecture seule

Disponibilité principale et status de l’appareil. Cette propriété est héritée de CIM_LogicalDevice, mais elle n’est pas utilisée.

AvailableRequestedStates

Type de données : tableau uint16

Type d'accès : Lecture seule

Indique les valeurs possibles pour le paramètre RequestedState de la méthode RequestStateChange utilisée pour initier un changement d’état. Les valeurs répertoriées sont un sous-ensemble des valeurs contenues dans la propriété RequestedStatesSupported de la instance associée de CIM_EnabledLogicalElementCapabilities, où les valeurs sélectionnées sont une fonction de l’état actuel du CIM_EnabledLogicalElement. Cette propriété peut être non Null si une implémentation est en mesure de publier le jeu de valeurs possibles en tant que fonction de l’état actuel. Cette propriété a la valeur Null si une implémentation ne parvient pas à déterminer le jeu de valeurs possibles en fonction de l’état actuel.

Cette propriété est héritée de CIM_EnabledLogicalElement.

Activé (2)

Désactivé (3)

Arrêter (4)

Hors connexion (6)

Test (7)

Report (8)

Quiesce (9)

Redémarrage (10)

Réinitialiser (11)

DMTF Reserved (.. )

Caption

Type de données : chaîne

Type d'accès : Lecture seule

Brève description de l’objet. Cette propriété est héritée de la classe CIM_ManagedElement et est toujours définie sur « Pulsation ».

CommunicationStatus

Type de données : uint16

Type d'accès : Lecture seule

Indique la capacité de l’instrumentation à communiquer avec l’élément managé sous-jacent. Une valeur Null indique que cette propriété n’est pas implémentée. Cette propriété est héritée de CIM_ManagedSystemElement.

CreationClassName

Type de données : chaîne

Type d'accès : Lecture seule

Nom de la classe de création du système d’étendue. Cette propriété est héritée de CIM_LogicalDevice et est toujours définie sur « Msvm_HeartbeatComponent ».

Description

Type de données : chaîne

Type d'accès : Lecture seule

Description de l'objet . Cette propriété est héritée de CIM_ManagedElement et est toujours définie sur « Microsoft Heartbeat Service ».

DetailedStatus

Type de données : uint16

Type d'accès : Lecture seule

Complète la propriété PrimaryStatus avec des détails status supplémentaires. Une valeur Null indique que cette propriété n’est pas implémentée. Cette propriété est héritée de CIM_ManagedSystemElement.

DeviceID

Type de données : chaîne

Type d'accès : Lecture seule

Adresse ou autres informations d’identification permettant de nommer de manière unique l’appareil logique. Cette propriété est héritée de CIM_LogicalDevice et est toujours définie sur «GUID Microsoft:VMGUID\ » où VMGUID est la propriété Name de l’Msvm_ComputerSystem associée à cet appareil.

ElementName

Type de données : chaîne

Type d'accès : Lecture seule

Nom complet de l’objet. Cette propriété est héritée de CIM_ManagedElement et est toujours définie sur « Pulsation ».

EnabledDefault

Type de données : uint16

Type d'accès : Lecture seule

Cette propriété est héritée de CIM_EnabledLogicalElement et est toujours définie sur 7 (aucune valeur par défaut).

EnabledState

Type de données : uint16

Type d'accès : Lecture seule

États activés et désactivés d’un élément. Cette propriété est héritée de CIM_EnabledLogicalElement et sera l’une des valeurs suivantes.

Valeur Signification
Activé
2
L’élément est en cours d’exécution.
Désactivé
3
L’élément est désactivé.

ErrorCleared

Type de données : booléen

Type d'accès : Lecture seule

Indique si l’erreur signalée dans LastErrorCode est maintenant effacée. Cette propriété est héritée de CIM_LogicalDevice mais n’est pas utilisée.

ErrorDescription

Type de données : chaîne

Type d'accès : Lecture seule

Chaîne qui fournit plus d’informations sur l’erreur enregistrée dans LastErrorCode et des informations sur les actions correctives pouvant être effectuées. Cette propriété est héritée de CIM_LogicalDevice mais n’est pas utilisée.

HealthState

Type de données : uint16

Type d'accès : Lecture seule

Intégrité actuelle de l’élément. Cette propriété est héritée de CIM_ManagedSystemElement et est toujours définie sur 5 (OK).

IdentifyingDescriptions

Type de données : tableau de chaînes

Type d'accès : Lecture seule

Tableau de chaînes de forme libre qui fournissent des explications et des détails sur les entrées dans le tableau de propriétés OtherIdentifyingInfo . Cette propriété est héritée de CIM_LogicalDevice, mais elle n’est pas utilisée.

InstallDate

Type de données : datetime

Type d'accès : Lecture seule

Date et heure auxquelles le service d’intégration a été installé sur la machine virtuelle. Cette propriété est héritée de CIM_ManagedSystemElement.

InstanceID

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : Clé

Identifie de manière unique un instance de cette classe. Cette propriété est héritée de CIM_ManagedElement.

LastErrorCode

Type de données : uint32

Type d'accès : Lecture seule

Dernier code d’erreur signalé par l’appareil logique. Cette propriété est héritée de CIM_LogicalDevice, mais elle n’est pas utilisée.

MaxQuiesceTime

Type de données : uint64

Type d'accès : Lecture seule

Cette propriété est dépréciée. Cette propriété est héritée de CIM_LogicalDevice, mais elle n’est pas utilisée.

Nom

Type de données : chaîne

Type d'accès : Lecture seule

Étiquette par laquelle l’objet est connu. Cette propriété est héritée de CIM_ManagedSystemElement.

OperatingStatus

Type de données : uint16

Type d'accès : Lecture seule

Fournit des informations de status actuelles sur la condition opérationnelle de l’élément et peut être utilisée pour fournir plus de détails concernant la valeur de la propriété EnabledState. Une valeur Null indique que cette propriété n’est pas implémentée. Cette propriété est héritée de CIM_ManagedSystemElement.

OperationalStatus

Type de données : tableau uint16

Type d'accès : Lecture seule

Qualificateurs : Override (« OperationalStatus »), ArrayType (« Indexed »)

Status actuelle de l’élément. Cette propriété est héritée de CIM_ManagedSystemElement.

Voici les valeurs possibles pour la valeur de propriété OperationalStatus[0].

OK (2)

Le service fonctionne normalement. Les valeurs des propriétés OperationalStatus[1] et StatusDescriptions[1] peuvent contenir plus d’informations.

Détérioré (3)

Le service fonctionne normalement, mais le service invité a négocié une version de protocole de communication compatible. Les valeurs des propriétés OperationalStatus[1] et StatusDescriptions[1] peuvent contenir plus d’informations.

Erreur non récupérable (7)

L’invité ne prend pas en charge une version de protocole compatible. Les valeurs des propriétés OperationalStatus[1] et StatusDescriptions[1] peuvent contenir plus d’informations.

Aucun contact (12)

Le service invité n’est pas installé ou n’a pas encore été contacté.

Perte de communication (13)

Le service invité ne répond plus normalement.

Suspendu (15)

La machine virtuelle est suspendue.

La valeur de la propriété OperationalStatus[1] indique les valeurs d’état de l’application fusionnées. Il s’agit de l’une des valeurs suivantes.

Notes

L’état d’une application est défini sur la machine virtuelle à l’aide de la méthode SetApplicationState .

OK (2)

Les applications qui s’exécutent à l’intérieur de la machine virtuelle fonctionnent normalement.

Incompatibilité de protocole (32775)

Les composants invité et hôte exécutent des versions de protocole différentes.

État critique de l’application (32782)

Une ou plusieurs des applications à l’intérieur de la machine virtuelle sont dans un état critique.

Communication expirée (32783)

Expiration du délai d’attente d’une réponse du composant invité.

Échec de communication (32784)

Échec de la communication avec le composant invité.

OtherEnabledState

Type de données : chaîne

Type d'accès : Lecture seule

Chaîne qui décrit l’état activé ou désactivé de l’élément lorsque la propriété EnabledState a la valeur 1 (Autre). Cette propriété doit avoir la valeur Null lorsque la propriété EnabledState a une valeur autre que 1. Cette propriété est héritée de CIM_EnabledLogicalElement et est toujours définie sur Null.

OtherIdentifyingInfo

Type de données : tableau de chaînes

Type d'accès : Lecture seule

Toutes les données supplémentaires, au-delà des informations d’ID d’appareil, qui peuvent être utilisées pour identifier un appareil logique. Cette propriété est héritée de CIM_LogicalDevice et est toujours définie sur Null.

PowerManagementCapabilities

Type de données : tableau uint16

Type d'accès : Lecture seule

Fonctionnalités de gestion de l’alimentation de l’appareil. Cette propriété est héritée de CIM_LogicalDevice, mais elle n’est pas utilisée.

PowerManagementSupported

Type de données : booléen

Type d'accès : Lecture seule

Indique si l’appareil peut être géré par l’alimentation. Cette propriété est héritée de CIM_LogicalDevice, mais elle n’est pas utilisée.

PowerOnHours

Type de données : uint64

Type d'accès : Lecture seule

Nombre d’heures consécutives pendant lesquelles cet appareil a été mis sous tension depuis son dernier cycle d’alimentation. Cette propriété est héritée de CIM_LogicalDevice mais n’est pas utilisée.

PrimaryStatus

Type de données : uint16

Type d'accès : Lecture seule

Fournit des informations de status de haut niveau. Cette propriété doit être utilisée conjointement avec la propriété DetailedStatus pour fournir des informations d’intégrité de haut niveau et détaillées status pour l’élément et ses sous-composants. Une valeur Null indique que cette propriété n’est pas implémentée. Cette propriété est héritée de CIM_ManagedSystemElement.

RequestedState

Type de données : uint16

Type d'accès : Lecture seule

Dernier état demandé ou souhaité pour l’élément. Cette propriété est héritée de CIM_EnabledLogicalElement et est toujours définie sur 12 (Non applicable).

État

Type de données : chaîne

Type d'accès : Lecture seule

Status actuelle de l’objet. Cette propriété est héritée de CIM_ManagedSystemElement mais n’est pas utilisée.

StatusDescriptions

Type de données : tableau de chaînes

Type d'accès : Lecture seule

Chaînes qui décrivent les différentes valeurs du tableau OperationalStatus . Cette propriété est héritée de CIM_ManagedSystemElement.

StatusInfo

Type de données : uint16

Type d'accès : Lecture seule

État actuel de l’appareil logique. Cette propriété est héritée de CIM_LogicalDevice, mais elle n’est pas utilisée.

SystemCreationClassName

Type de données : chaîne

Type d'accès : Lecture seule

Nom de la classe de création du système d’étendue. Cette propriété est héritée de CIM_LogicalDevice et est toujours définie sur « Msvm_ComputerSystem ».

SystemName

Type de données : chaîne

Type d'accès : Lecture seule

Nom du système d’étendue. Cette propriété est héritée de CIM_LogicalDevice et est le nom du Msvm_ComputerSystem associé à ce service de pulsations.

TimeOfLastStateChange

Type de données : datetime

Type d'accès : Lecture seule

Date ou heure de la dernière modification de l’état activé de l’élément. Cette propriété est héritée de CIM_EnabledLogicalElement et est toujours définie sur Null.

TotalPowerOnHours

Type de données : uint64

Type d'accès : Lecture seule

Nombre total d’heures pendant lesquelles cet appareil a été alimenté. Cette propriété est héritée de CIM_LogicalDevice, mais elle n’est pas utilisée.

TransitioningToState

Type de données : uint16

Type d'accès : Lecture seule

Indique l’état cible vers lequel le instance effectue la transition. Cette propriété est héritée de CIM_EnabledLogicalElement, mais elle n’est pas utilisée.

Notes

L’accès à la classe Msvm_HeartbeatComponent peut être limité par le filtrage UAC. Pour plus d’informations, consultez Contrôle de compte d’utilisateur et WMI.

Exemples

L’exemple C# suivant obtient l’status d’intégrité de l’application d’une machine virtuelle. Les utilitaires référencés se trouvent dans Utilitaires communs pour les exemples de virtualisation (V2).

Important

Pour fonctionner correctement, le code suivant doit être exécuté avec des privilèges d’administrateur.

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");
        }
    }
}

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2012 [applications de bureau uniquement]
Espace de noms
Root\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
DLL
Vmms.exe

Voir aussi

CIM_LogicalDevice

CIM_LogicalDevice

Msvm_HeartbeatComponent