Win32_Process, classe

La classe WMI Win32_Process représente un processus sur un système d’exploitation.

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

Notes

Pour une discussion générale sur les processus et les threads dans Windows, consultez la rubrique Processus et threads.

Syntaxe

[Dynamic, Provider("CIMWin32"), SupportsCreate, CreateBy("Create"), SupportsDelete, DeleteBy("DeleteInstance"), UUID("{8502C4DC-5FBB-11D2-AAC1-006008C78BC7}"), DisplayName("Processes"), AMENDMENT]
class Win32_Process : CIM_Process
{
  string   CreationClassName;
  string   Caption;
  string   CommandLine;
  datetime CreationDate;
  string   CSCreationClassName;
  string   CSName;
  string   Description;
  string   ExecutablePath;
  uint16   ExecutionState;
  string   Handle;
  uint32   HandleCount;
  datetime InstallDate;
  uint64   KernelModeTime;
  uint32   MaximumWorkingSetSize;
  uint32   MinimumWorkingSetSize;
  string   Name;
  string   OSCreationClassName;
  string   OSName;
  uint64   OtherOperationCount;
  uint64   OtherTransferCount;
  uint32   PageFaults;
  uint32   PageFileUsage;
  uint32   ParentProcessId;
  uint32   PeakPageFileUsage;
  uint64   PeakVirtualSize;
  uint32   PeakWorkingSetSize;
  uint32   Priority;
  uint64   PrivatePageCount;
  uint32   ProcessId;
  uint32   QuotaNonPagedPoolUsage;
  uint32   QuotaPagedPoolUsage;
  uint32   QuotaPeakNonPagedPoolUsage;
  uint32   QuotaPeakPagedPoolUsage;
  uint64   ReadOperationCount;
  uint64   ReadTransferCount;
  uint32   SessionId;
  string   Status;
  datetime TerminationDate;
  uint32   ThreadCount;
  uint64   UserModeTime;
  uint64   VirtualSize;
  string   WindowsVersion;
  uint64   WorkingSetSize;
  uint64   WriteOperationCount;
  uint64   WriteTransferCount;
};

Membres

La classe Win32_Process comporte les types de membres suivants :

Méthodes

La classe Win32_Process a ces méthodes.

Méthode Description
AttachDebugger Lance le débogueur actuellement inscrit pour un processus.
Créer Crée un processus.
GetAvailableVirtualSize Récupère la taille actuelle, en octets, de l’espace d’adressage virtuel libre disponible pour le processus.
Windows Server 2012, Windows 8, Windows 7, Windows Server 2008 et Windows Vista : cette méthode n’est pas prise en charge avant Windows 8.1 et Windows Server 2012 R2.
GetOwner Récupère le nom d’utilisateur et le nom de domaine sous lesquels le processus s’exécute.
GetOwnerSid Récupère l’identificateur de sécurité (SID) du propriétaire d’un processus.
SetPriority Modifie la priorité d’exécution d’un processus.
Terminate Termine un processus et tous ses threads.

 

Propriétés

La classe Win32_Process possède ces propriétés.

Caption

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : MaxLen (64), DisplayName (« Caption »)

Brève description d’un objet : une chaîne d’une ligne.

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

CommandLine

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : DisplayName (« Ligne de commande pour démarrer le processus »)

Ligne de commande utilisée pour démarrer un processus spécifique, le cas échéant.

CreationClassName

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : CIM_Key, MaxLen (256), DisplayName (« Nom de classe »)

Nom de la classe ou de la sous-classe utilisée dans la création d’un instance. Lorsqu’elle est utilisée avec d’autres propriétés de clé de la classe, cette propriété permet à toutes les instances de la classe et à ses sous-classes d’être identifiées de manière unique.

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

CreationDate

Type de données : datetime

Type d'accès : Lecture seule

Qualificateurs : Fixed, DisplayName (« CreationDate »)

Date de début de l’exécution du processus.

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

CSCreationClassName

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : propagé (« CIM_OperatingSystem. CSCreationClassName »), CIM_Key, MaxLen (256), DisplayName (« Nom de classe système de l’ordinateur »)

Nom de la classe de création du système informatique d’étendue.

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

CSName

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : propagé (« CIM_OperatingSystem. CSName « ), CIM_Key, MaxLen (256), DisplayName (« Nom du système de l’ordinateur »)

Nom du système informatique d’étendue.

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

Description

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : DisplayName (« Description »)

Description d’un objet.

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

ExecutablePath

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : Privilèges (« SeDebugPrivilege »), MappingStrings (« Win32API | Structures d’aide de l’outil | MODULEENTRY32|szExePath »), DisplayName (« Chemin exécutable »)

Chemin d’accès au fichier exécutable du processus.

Exemple : « C:\Windows\System\Explorer.Exe »

ExecutionState

Type de données : uint16

Type d'accès : Lecture seule

Qualificateurs : DisplayName (« État d’exécution »)

Condition de fonctionnement actuelle du processus.

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

Inconnu (0)

Unknown

Autre (1)

Autres

Prêt (2)

En cours d’exécution (3)

Bloqué (4)

Bloqué

Suspendu bloqué (5)

Suspendu prêt (6)

Terminé (7)

Arrêté (8)

Croissance (9)

Handle

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : Key, MaxLen (256), DisplayName (« Handle »)

Identificateur de processus.

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

HandleCount

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus| SYSTEM_PROCESS_INFORMATION| HandleCount »), DisplayName (« Handle Count »)

Nombre total de handles ouverts appartenant au processus. HandleCount est la somme des handles actuellement ouverts par chaque thread de ce processus. Un handle est utilisé pour examiner ou modifier les ressources système. Chaque handle a une entrée dans une table qui est gérée en interne. Les entrées contiennent les adresses des ressources et des données permettant d’identifier le type de ressource.

InstallDate

Type de données : datetime

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« MIF. DMTF| ComponentID|001.5 »), DisplayName (« Date d’installation »)

Date d’installation d’un objet. L’objet peut être installé sans qu’une valeur soit écrite dans cette propriété.

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

KernelModeTime

Type de données : uint64

Type d'accès : Lecture seule

Qualificateurs : Override (« KernelModeTime »), Units (« 100 nanoseconds »)

Temps en mode noyau, en millisecondes. Si ces informations ne sont pas disponibles, utilisez la valeur 0 (zéro).

Pour plus d’informations sur l’utilisation de valeurs uint64 dans des scripts, voir Scripts dans WMI.

MaximumWorkingSetSize

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : Privilèges (« SeDebugPrivilege »), MappingStrings (« Win32 | WINNT. H| QUOTA_LIMITS| MaximumWorkingSetSize »), DisplayName (« Taille maximale du jeu de travail »), Units (« kilo-octets »)

Taille maximale du jeu de travail du processus. L’ensemble de travail d’un processus est l’ensemble de pages mémoire visibles par le processus dans la RAM physique. Ces pages sont résidentes et peuvent être utilisées par une application sans déclencher d’erreur de page.

Exemple : 1413120

MinimumWorkingSetSize

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : Privilèges (« SeDebugPrivilege »), MappingStrings (« Win32 | WINNT. H| QUOTA_LIMITS| MinimumWorkingSetSize), DisplayName (« Taille minimale du jeu de travail »), Units (« kilo-octets »)

Taille minimale du jeu de travail du processus. L’ensemble de travail d’un processus est l’ensemble de pages mémoire visibles par le processus dans la RAM physique. Ces pages résident et peuvent être utilisées par une application sans déclencher de défaillance de page.

Exemple : 20480

Nom

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : DisplayName (« Name »)

Nom du fichier exécutable responsable du processus, équivalent à la propriété Nom de l’image dans le Gestionnaire des tâches.

En cas d’héritage par une sous-classe, la propriété peut être remplacée pour être une propriété de clé. Le nom est codé en dur dans l’application elle-même et n’est pas affecté par la modification du nom de fichier. Par exemple, même si vous renommez Calc.exe, le nom Calc.exe s’affiche toujours dans le Gestionnaire des tâches et dans tous les scripts WMI qui récupèrent le nom du processus.

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

OSCreationClassName

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : propagé (« CIM_OperatingSystem. CreationClassName »), CIM_Key, MaxLen (256), DisplayName (« Nom de classe de système d’exploitation »)

Nom de la classe de création du système d’exploitation d’étendue.

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

OSName

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : propagé (« CIM_OperatingSystem. Nom »), CIM_Key, MaxLen (256), DisplayName (« Nom du système d’exploitation »)

Nom du système d’exploitation d’étendue.

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

OtherOperationCount

Type de données : uint64

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | SYSTEM_PROCESS_INFORMATION| OtherOperationCount »), DisplayName (« Other Operation Count »)

Nombre d’opérations d’E/S effectuées qui ne sont pas des opérations de lecture ou d’écriture.

Pour plus d’informations sur l’utilisation de valeurs uint64 dans des scripts, voir Scripts dans WMI.

OtherTransferCount

Type de données : uint64

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | SYSTEM_PROCESS_INFORMATION| OtherTransferCount »), DisplayName (« Other Transfer Count »), Units (« bytes »)

Quantité de données transférées pendant des opérations qui ne sont pas des opérations de lecture ou d’écriture.

Pour plus d’informations sur l’utilisation de valeurs uint64 dans des scripts, voir Scripts dans WMI.

PageFaults

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus| SYSTEM_PROCESS_INFORMATION| PageFaultCount »), DisplayName (« nombre d’erreurs de page »)

Nombre d’erreurs de page générées par un processus.

Exemple : 10

PageFileUsage

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus| SYSTEM_PROCESS_INFORMATION| PagefileUsage »), DisplayName (« Utilisation du fichier de page »), Unités (« kilo-octets »)

Quantité d’espace de fichier de page qu’un processus utilise actuellement. Cette valeur est cohérente avec la valeur VMSize dans TaskMgr.exe.

Exemple : 102435

ParentProcessId

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus| SYSTEM_PROCESS_INFORMATION| InheritedFromUniqueProcessId »), DisplayName (« Parent Process ID »)

Identificateur unique du processus qui crée un processus. Les numéros d’identificateur de processus étant réutilisés, ils identifient uniquement un processus pendant la durée de vie de ce processus. Il est possible que le processus identifié par ParentProcessId soit terminé, de sorte que ParentProcessId peut ne pas faire référence à un processus en cours d’exécution. Il est également possible que ParentProcessId fasse référence incorrectement à un processus qui réutilise un identificateur de processus. Vous pouvez utiliser la propriété CreationDate pour déterminer si le parent spécifié a été créé après le processus représenté par ce Win32_Process instance a été créé.

PeakPageFileUsage

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus | SYSTEM_PROCESS_INFORMATION| PeakPagefileUsage »), DisplayName (« Pic d’utilisation du fichier de page »), Units (« kilo-octets »)

Quantité maximale d’espace de fichier de page utilisée pendant la durée d’un processus.

Exemple : 102367

PeakVirtualSize

Type de données : uint64

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus | SYSTEM_PROCESS_INFORMATION| PeakVirtualSize »), DisplayName (« Pic d’utilisation de l’espace d’adressage viruel »), Unités (« octets »)

Espace d’adressage virtuel maximal qu’un processus utilise à tout moment. L’utilisation de l’espace d’adressage virtuel n’implique pas nécessairement l’utilisation correspondante de disques ou de pages de mémoire main. Toutefois, l’espace virtuel est limité et, en utilisant trop, le processus peut ne pas être en mesure de charger des bibliothèques.

Pour plus d’informations sur l’utilisation de valeurs uint64 dans des scripts, voir Scripts dans WMI.

PeakWorkingSetSize

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus | SYSTEM_PROCESS_INFORMATION| PeakWorkingSetSize »), DisplayName (« Peak Working Set Size »), Units (« kilo-octets »)

Taille maximale de l’ensemble de travail d’un processus.

Exemple : 1413120

Priorité

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : Remplacer (« Priorité »), MappingStrings (« Win32API| État du processus | SYSTEM_PROCESS_INFORMATION| BasePriority « ), DisplayName (« Priority »)

Priorité de planification d’un processus dans un système d’exploitation. Plus la valeur est élevée, plus un processus reçoit une priorité élevée. Les valeurs de priorité peuvent varier de 0 (zéro), qui est la priorité la plus faible à 31, qui est la priorité la plus élevée.

Exemple : 7

PrivatePageCount

Type de données : uint64

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus | SYSTEM_PROCESS_INFORMATION| PrivatePageCount »), DisplayName (« Private Page Count »)

Nombre actuel de pages allouées qui ne sont accessibles qu’au processus représenté par ce Win32_Process instance.

Pour plus d’informations sur l’utilisation de valeurs uint64 dans des scripts, voir Scripts dans WMI.

Processid

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | PROCESS_INFORMATION|dwProcessId »), DisplayName (« ID de processus »)

Identificateur numérique utilisé pour distinguer un processus d’un autre. Les ID de processus sont valides depuis le moment de la création du processus jusqu’à l’arrêt du processus. À l’arrêt, ce même identificateur numérique peut être appliqué à un nouveau processus.

Cela signifie que vous ne pouvez pas utiliser ProcessID seul pour surveiller un processus particulier. Par exemple, une application peut avoir un ProcessID de 7, puis échouer. Lorsqu’un nouveau processus est démarré, le nouveau processus peut se voir attribuer ProcessID 7. Un script qui a vérifié uniquement un ProcessID spécifié peut donc être « trompé » en pensant que l’application d’origine était toujours en cours d’exécution.

QuotaNonPagedPoolUsage

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus | SYSTEM_PROCESS_INFORMATION| QuotaNonPagedPoolUsage »), DisplayName (« Quota d’utilisation du pool non paginé »)

Quantité de quota d’utilisation du pool non paginé pour un processus.

Exemple : 15

QuotaPagedPoolUsage

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus | SYSTEM_PROCESS_INFORMATION| QuotaPagedPoolUsage »), DisplayName (« Quota d’utilisation du pool paginé »)

Quantité de quota d’utilisation du pool paginé pour un processus.

Exemple : 22

QuotaPeakNonPagedPoolUsage

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus | SYSTEM_PROCESS_INFORMATION| QuotaPeakNonPagedPoolUsage »), DisplayName (« Quota d’utilisation de pool non paginé de pointe »)

Quantité maximale de quota d’utilisation du pool non paginé pour un processus.

Exemple : 31

QuotaPeakPagedPoolUsage

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus | SYSTEM_PROCESS_INFORMATION| QuotaPeakPagedPoolUsage »), DisplayName (« Quota d’utilisation du pool paginé de pointe »)

Quantité maximale de quota d’utilisation du pool paginé pour un processus.

Exemple : 31

ReadOperationCount

Type de données : uint64

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | SYSTEM_PROCESS_INFORMATION| ReadOperationCount »), DisplayName (« Nombre d’opérations en lecture »)

Nombre d’opérations de lecture effectuées.

Pour plus d’informations sur l’utilisation de valeurs uint64 dans des scripts, voir Scripts dans WMI.

ReadTransferCount

Type de données : uint64

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | SYSTEM_PROCESS_INFORMATION| ReadTransferCount »), DisplayName (« Nombre de transferts en lecture »), Unités (« octets »)

Quantité de données lues.

Pour plus d’informations sur l’utilisation de valeurs uint64 dans des scripts, voir Scripts dans WMI.

SessionId

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus | SYSTEM_PROCESS_INFORMATION| SessionId »), DisplayName (« ID de session »)

Identificateur unique généré par un système d’exploitation lors de la création d’une session. Une session s’étend sur une période comprise entre l’ouverture de session et la déconnexion à partir d’un système spécifique.

État

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : MaxLen (10), DisplayName (« Status »)

Cette propriété n’est pas implémentée et n’est renseignée pour aucune instance de cette classe. Elle est toujours NULL.

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

Les valeurs sont notamment les suivantes :

OK (« OK »)

Erreur (« Erreur »)

Dégradé (« Dégradé »)

Inconnu (« Inconnu »)

Échec du prédé (« Échec anticipé »)

Démarrage (« Démarrage »)

Arrêt (« Arrêt »)

Service (« Service »)

Stressé (« Stressé »)

NonRecover (« NonRecover »)

Aucun contact (« Aucun contact »)

Lost Comm (« Lost Comm »)

TerminationDate

Type de données : datetime

Type d'accès : Lecture seule

Qualificateurs : DisplayName (« Date de fin »)

Le processus a été arrêté ou arrêté. Pour obtenir l’heure d’arrêt, un handle du processus doit être maintenu ouvert. Sinon, cette propriété renvoie null.

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

ThreadCount

Type de données : uint32

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus| SYSTEM_PROCESS_INFORMATION| NumberOfThreads »), DisplayName (« Nombre de threads »)

Nombre de threads actifs dans un processus. Une instruction est l’unité d’exécution de base dans un processeur, et un thread est l’objet qui exécute une instruction. Chaque processus en cours d’exécution a au moins un thread.

UserModeTime

Type de données : uint64

Type d'accès : Lecture seule

Qualificateurs : Override (« UserModeTime »), Units (« 100 nanoseconds »)

Temps en mode utilisateur, en unités de 100 nanosecondes. Si ces informations ne sont pas disponibles, utilisez la valeur 0 (zéro).

Pour plus d’informations sur l’utilisation de valeurs uint64 dans des scripts, voir Scripts dans WMI.

VirtualSize

Type de données : uint64

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| État du processus| SYSTEM_PROCESS_INFORMATION| VirtualSize »), DisplayName (« Utilisation de l’espace d’adressage virtuel »), Unités (« octets »)

Taille actuelle de l’espace d’adressage virtuel qu’un processus utilise, et non la mémoire physique ou virtuelle réellement utilisée par le processus. L’utilisation de l’espace d’adressage virtuel n’implique pas nécessairement l’utilisation correspondante de pages de disque ou de mémoire main. L’espace virtuel est limité et, en utilisant trop, le processus peut ne pas être en mesure de charger des bibliothèques. Cette valeur est cohérente avec ce que vous voyez dans Perfmon.exe.

Pour plus d’informations sur l’utilisation de valeurs uint64 dans des scripts, voir Scripts dans WMI.

WindowsVersion

Type de données : chaîne

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Fonctions de processus et de thread | GetProcessVersion »), DisplayName (« Version Windows »)

Version de Windows dans laquelle le processus est en cours d’exécution.

Exemple : 4.0

WorkingSetSize

Type de données : uint64

Type d'accès : Lecture seule

Qualificateurs : DisplayName (« Taille du jeu de travail »), Unités (« octets »)

Quantité de mémoire en octets dont un processus a besoin pour s’exécuter efficacement, pour un système d’exploitation qui utilise la gestion de la mémoire basée sur les pages. Si le système n’a pas suffisamment de mémoire (inférieure à la taille du jeu de travail), un battage se produit. Si la taille du jeu de travail n’est pas connue, utilisez NULL ou 0 (zéro). Si des données de jeu de travail sont fournies, vous pouvez surveiller les informations pour comprendre les besoins en mémoire changeants d’un processus.

Pour plus d’informations sur l’utilisation de valeurs uint64 dans des scripts, voir Scripts dans WMI.

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

WriteOperationCount

Type de données : uint64

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | SYSTEM_PROCESS_INFORMATION| WriteOperationCount »), DisplayName (« Nombre d’opérations d’écriture »)

Nombre d’opérations d’écriture effectuées.

Pour plus d’informations sur l’utilisation de valeurs uint64 dans des scripts, voir Scripts dans WMI.

WriteTransferCount

Type de données : uint64

Type d'accès : Lecture seule

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | SYSTEM_PROCESS_INFORMATION| WriteTransferCount « ), DisplayName (« Nombre de transferts d’écriture »), Unités (« octets »)

Quantité de données écrites.

Pour plus d’informations sur l’utilisation de valeurs uint64 dans des scripts, voir Scripts dans WMI.

Notes

La classe Win32_Process est dérivée de CIM_Process. Le processus appelant qui utilise cette classe doit avoir le privilège SE_RESTORE_NAME sur l’ordinateur sur lequel réside le Registre. Pour plus d’informations, consultez Exécution d’opérations privilégiées.

Vue d’ensemble

Les processus sous-tendent presque tout ce qui se passe sur un ordinateur. En fait, la cause racine de la plupart des problèmes informatiques peut être tracée dans les processus; par exemple, un trop grand nombre de processus peut être en cours d’exécution sur un ordinateur (et se disputer pour un ensemble fini de ressources), ou un seul processus peut utiliser plus que sa part de ressources. Ces facteurs rendent important de garder un watch étroit sur les processus en cours d’exécution sur un ordinateur. La surveillance des processus, l’activité main dans la gestion des processus, vous permet de déterminer ce que fait réellement un ordinateur, quelles applications l’ordinateur exécute et comment ces applications sont affectées par les modifications apportées à l’environnement informatique.

Surveillance d’un processus

La surveillance régulière des processus vous permet de vous assurer qu’un ordinateur s’exécute à un maximum d’efficacité et qu’il exécute ses tâches nommées comme prévu. Par exemple, en surveillant les processus, vous pouvez être averti immédiatement de toute application qui a cessé de répondre, puis prendre des mesures pour mettre fin à ce processus. En outre, la surveillance des processus vous permet d’identifier les problèmes avant qu’ils ne se produisent. Par exemple, en vérifiant à plusieurs reprises la quantité de mémoire utilisée par un processus, vous pouvez identifier une fuite de mémoire. Vous pouvez ensuite arrêter le processus avant que l’application errante utilise toute la mémoire disponible et arrête l’ordinateur.

La surveillance des processus permet également de réduire les interruptions causées par les pannes planifiées pour les mises à niveau et la maintenance. Par exemple, en vérifiant la status d’une application de base de données s’exécutant sur des ordinateurs clients, vous pouvez déterminer l’impact de la mise hors connexion de la base de données afin de mettre à niveau le logiciel.

Surveillance de la disponibilité des processus. Mesure le pourcentage de temps pendant lequel un processus est disponible. La disponibilité est généralement surveillée à l’aide d’une sonde simple, qui indique si le processus est toujours en cours d’exécution. En effectuant le suivi des résultats de chaque sonde, vous pouvez calculer la disponibilité du processus. Par exemple, un processus qui est sondé 100 fois et qui répond à 95 de ces occasions a une disponibilité de 95 %. Ce type de surveillance est généralement réservé aux bases de données, aux programmes de messagerie et aux autres applications qui sont censés s’exécuter à tout moment. Il n’est pas approprié pour les programmes de traitement de texte, les feuilles de calcul ou d’autres applications qui sont régulièrement démarrées et arrêtées plusieurs fois par jour.

Vous pouvez créer une instance de la classe Win32_ProcessStartup pour configurer le processus.

Vous pouvez surveiller les performances des processus avec la classe Win32_PerfFormattedData_PerfProc_Process et un objet d’actualisation WMI, tel que SWbemRefresher. Pour plus d’informations, consultez Supervision des données de performances.

Exemples

L’exemple de code PowerShell List the Properties of WMI Classes sur TechNet Gallery décrit la classe Win32_Process et affiche les résultats au format Excel.

Le processus Terminer l’exécution sur plusieurs serveurs met fin à un processus en cours d’exécution sur un ou plusieurs ordinateurs.

Dans la rubrique Exemple : appel d’une méthode de fournisseur , le code utilise C++ pour appeler Win32_Process afin de créer un processus.

La disponibilité est la forme la plus simple de surveillance des processus : avec cette approche, vous vous assurez simplement que le processus est en cours d’exécution. Lorsque vous surveillez la disponibilité des processus, vous récupérez généralement une liste de processus en cours d’exécution sur un ordinateur, puis vous vérifiez qu’un processus particulier est toujours actif. Si le processus est actif, il est considéré comme disponible. Si le processus n’est pas actif, il n’est pas disponible. L’exemple VBScript suivant surveille la disponibilité des processus en vérifiant la liste des processus en cours d’exécution sur un ordinateur et en émettant une notification si le processus Database.exe est introuvable.

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Database.exe'")
If colProcesses.Count = 0 Then
 Wscript.Echo "Database.exe is not running."
Else
 Wscript.Echo "Database.exe is running."
End If

L’exemple VBScript suivant surveille la création de processus à l’aide d’un consommateur d’événements temporaire.

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredProcesses = objWMIService.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent " _
                                                     & "WITHIN 10 WHERE TargetInstance ISA 'Win32_Process'")
i = 0
Do While i = 0
 Set objLatestProcess = colMonitoredProcesses.NextEvent
 Wscript.Echo objLatestProcess.TargetInstance.Name, Now
Loop

Le VBScript suivant analyse les informations de performances du processus.

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
For Each objProcess in colProcessList
 Wscript.Echo "Process: " & objProcess.Name
 Wscript.Echo "Process ID: " & objProcess.ProcessID
 Wscript.Echo "Thread Count: " & objProcess.ThreadCount
 Wscript.Echo "Page File Size: " & objProcess.PageFileUsage
 Wscript.Echo "Page Faults: " & objProcess.PageFaults
 Wscript.Echo "Working Set Size: " & objProcess.WorkingSetSize
Next

L’exemple de code VBScript suivant montre comment obtenir le propriétaire de chaque processus sur un ordinateur local. Vous pouvez utiliser ce script pour obtenir des données à partir d’un ordinateur distant, par exemple, pour déterminer quels utilisateurs ont des processus exécutant le serveur Terminal Server. Remplacez le nom de l’ordinateur distant par « » dans la première ligne. Vous devez également être administrateur sur l’ordinateur distant.

strComputer = "." 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colProcesses = objWMIService.ExecQuery("select * from win32_process" )
For Each objProcess in colProcesses

  If objProcess.GetOwner ( User, Domain ) = 0 Then
    Wscript.Echo "Process " & objProcess.Caption & " belongs to " & Domain & "\" & User
  Else
    Wscript.Echo "Problem " & Rtn & " getting the owner for process " & objProcess.Caption
  End If
Next

L’exemple de code VBScript suivant montre comment obtenir la session d’ouverture de session associée à un processus en cours d’exécution. Un processus doit être en cours d’exécution Notepad.exe avant le démarrage du script. L’exemple localise les instances de Win32_LogonSession associées au Win32_Process qui représente Notepad.exe. Win32_SessionProcess est spécifié en tant que classe d’association. Pour plus d’informations, consultez ASSOCIATORS OF Statement..

On error resume next
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess in colProcesses
  ProcessId = objProcess.ProcessId
  Set colLogonSessions = objWMIService.ExecQuery("Associators of {Win32_Process='" & ProcessId & "'} " _
                                               & "Where Resultclass = Win32_LogonSession Assocclass = Win32_SessionProcess", "WQL", 48)
  If Err <> 0 Then
    WScript.Echo "Error on associators query= " & Err.number & " " & Err.Description
    WScript.Quit
  End If
  For Each LogonSession in colLogonSessions
    Wscript.Echo " Logon id is " & LogonSession.LogonId
  Next
Next

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
Espace de noms
Racine\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Voir aussi

CIM_Process

Classes du système d’exploitation

Tâches WMI : Processus