_Clase de proceso Win32

La clase WMI de _ proceso de Win32 representa un proceso en un sistema operativo.

La siguiente sintaxis se simplifica desde el código de Managed Object Format (MOF) e incluye todas las propiedades heredadas.

Nota

Para obtener una explicación general sobre los procesos y subprocesos de Windows, vea el tema procesos y subprocesos.

Sintaxis

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

Miembros

La clase de _ proceso de Win32 tiene estos tipos de miembros:

Métodos

La clase de _ proceso de Win32 tiene estos métodos.

Método Descripción
AttachDebugger Inicia el depurador registrado actualmente para un proceso.
A Crea un nuevo proceso.
GetAvailableVirtualSize Recupera el tamaño actual, en bytes, del espacio de direcciones virtuales libre disponible para el proceso.
Windows server 2012, Windows 8, Windows 7, Windows server 2008 y Windows Vista: Este método no se admite antes de Windows 8.1 y Windows Server 2012 R2.
GetOwner Recupera el nombre de usuario y el nombre de dominio en el que se está ejecutando el proceso.
GetOwnerSid Recupera el identificador de seguridad (SID) del propietario de un proceso.
SetPriority Cambia la prioridad de ejecución de un proceso.
Terminate Finaliza un proceso y todos sus subprocesos.

Propiedades

La clase de _ proceso de Win32 tiene estas propiedades.

Caption

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: MaxLen (64), displayName ("Caption")

Breve descripción de un objeto: una cadena de una línea.

Esta propiedad se hereda del _ ManagedSystemElement de CIM.

CommandLine

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: displayName ("línea de comandos para iniciar proceso")

Línea de comandos que se usa para iniciar un proceso específico, si procede.

CreationClassName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: _ clave CIM, MaxLen (256), displayName ("nombre de clase")

Nombre de la clase o subclase utilizada en la creación de una instancia de. Cuando se usa con otras propiedades de clave de la clase, esta propiedad permite que todas las instancias de la clase y sus subclases se identifiquen de forma única.

Esta propiedad se hereda del _ proceso CIM.

CreationDate

Tipo de datos: DateTime

Tipo de acceso: solo lectura

Calificadores: fixed, displayName ("CreationDate")

Fecha en que comienza la ejecución del proceso.

Esta propiedad se hereda del _ proceso CIM.

CSCreationClassName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: propagados ("CIM _ OperatingSystem.CSCreationClassName"), _ clave CIM, MaxLen (256), displayName (" Computer System Class name ")

Nombre de la clase de creación del sistema de ámbito del equipo.

Esta propiedad se hereda del _ proceso CIM.

CSName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: propagados ("CIM _ OperatingSystem.CSName"), _ clave CIM, MaxLen (256), displayName (" Computer System Name ")

Nombre del sistema de ámbito del equipo.

Esta propiedad se hereda del _ proceso CIM.

Descripción

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: displayName ("Descripción")

Descripción de un objeto.

Esta propiedad se hereda del _ ManagedSystemElement de CIM.

ExecutablePath _s

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: privileges ("SeDebugPrivilege"), MappingStrings ("inesperados win32api | Tool Help Structures | MODULEENTRY32 | SzExePath"), displayName ("ruta de acceso del archivo ejecutable")

Ruta de acceso al archivo ejecutable del proceso.

Ejemplo: "C: \ Windows \ System \Explorer.Exe"

ExecutionState

Tipo de datos: UInt16

Tipo de acceso: solo lectura

Calificadores: displayName ("estado de ejecución")

Condición de funcionamiento actual del proceso.

Esta propiedad se hereda del _ proceso CIM.

Desconocido (0)

Unknown

Otro (1)

Otros

Listo (2)

En ejecución (3)

Bloqueado (4)

Bloqueado

Suspendido bloqueado (5)

Suspendido preparado (6)

Terminada (7)

Detenido (8)

En aumento (9)

Handle

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: key, MaxLen (256), displayName ("Handle")

Identificador del proceso.

Esta propiedad se hereda del _ proceso CIM.

HandleCount

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings (" | | información de proceso del sistema de estado de proceso inesperados win32api _ _ | HandleCount"), displayName ("número de identificadores")

Número total de identificadores abiertos propiedad del proceso. HandleCount es la suma de los identificadores abiertos actualmente por cada subproceso de este proceso. Un identificador se utiliza para examinar o modificar los recursos del sistema. Cada controlador tiene una entrada en una tabla que se mantiene internamente. Las entradas contienen las direcciones de los recursos y los datos para identificar el tipo de recurso.

InstallDate

Tipo de datos: DateTime

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("MIF. DMTF | ComponentID | 001,5 "), displayName (" instalación de fecha ")

Fecha en que se instala un objeto. El objeto se puede instalar sin que se escriba un valor en esta propiedad.

Esta propiedad se hereda del _ ManagedSystemElement de CIM.

KernelModeTime

Tipo de datos: UInt64

Tipo de acceso: solo lectura

Calificadores: invalidación ("KernelModeTime"), unidades ("100 nanosegundos")

Tiempo en modo kernel, en milisegundos. Si esta información no está disponible, utilice un valor de 0 (cero).

Para obtener más información sobre el uso de valores UInt64 en scripts, vea scripting en WMI.

MaximumWorkingSetSize

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: privileges ("SeDebugPrivilege"), MappingStrings ("Win32 | Winnt. H | _ límites | de cuota MaximumWorkingSetSize "), displayName (" tamaño máximo del espacio de trabajo "), unidades (" kilobytes ")

Tamaño máximo del espacio de trabajo del proceso. El espacio de trabajo de un proceso es el conjunto de páginas de memoria visibles para el proceso en la RAM física. Estas páginas son residentes y están disponibles para que una aplicación las use sin desencadenar un error de página.

Ejemplo: 1413120

MinimumWorkingSetSize

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: privileges ("SeDebugPrivilege"), MappingStrings ("Win32 | Winnt. H | _ límites | de cuota MinimumWorkingSetSize "), displayName (" tamaño mínimo del espacio de trabajo "), unidades (" kilobytes ")

Tamaño mínimo del espacio de trabajo del proceso. El espacio de trabajo de un proceso es el conjunto de páginas de memoria visibles para el proceso en la RAM física. Estas páginas son residentes y están disponibles para que una aplicación las use sin desencadenar un error de página.

Ejemplo: 20480

Nombre

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: displayName ("Name")

Nombre del archivo ejecutable responsable del proceso, equivalente a la propiedad nombre de imagen del administrador de tareas.

Cuando se hereda mediante una subclase, la propiedad se puede invalidar para ser una propiedad de clave. El nombre se codifica de forma rígida en la propia aplicación y no se ve afectado por el cambio del nombre de archivo. Por ejemplo, incluso si cambia el nombre de Calc.exe, el nombre Calc.exe seguirá apareciendo en el administrador de tareas y en cualquier script de WMI que recupere el nombre del proceso.

Esta propiedad se hereda del _ ManagedSystemElement de CIM.

OSCreationClassName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: propagados ("CIM _ OperatingSystem.CreationClassName"), _ clave CIM, MaxLen (256), displayName (" nombre de clase del sistema operativo ")

Nombre de la clase de creación del sistema operativo de ámbito.

Esta propiedad se hereda del _ proceso CIM.

OSName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: propagados ("CIM _ OperatingSystem.Nombre"), _ clave CIM, MaxLen (256), displayName (" nombre del sistema operativo ")

Nombre del sistema operativo de ámbito.

Esta propiedad se hereda del _ proceso CIM.

OtherOperationCount

Tipo de datos: UInt64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | Process and Thread Structures | información de proceso del sistema _ _ | OtherOperationCount"), displayName ("otro recuento de operaciones")

Número de operaciones de e/s realizadas que no son operaciones de lectura o escritura.

Para obtener más información sobre el uso de valores UInt64 en scripts, vea scripting en WMI.

OtherTransferCount

Tipo de datos: UInt64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | Process and Thread Structures | información de proceso del sistema _ _ | OtherTransferCount"), displayName ("otro recuento de transferencias"), unidades ("bytes")

Cantidad de datos transferidos durante las operaciones que no son operaciones de lectura o escritura.

Para obtener más información sobre el uso de valores UInt64 en scripts, vea scripting en WMI.

PageFaults

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings (" | | _ información de proceso del sistema de estado de proceso inesperados win32api _ | PageFaultCount"), displayName ("número de errores de página")

Número de errores de página que genera un proceso.

Ejemplo: 10

PageFileUsage

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings (" | | información de proceso del sistema de estado de proceso inesperados win32api _ _ | PagefileUsage"), displayName ("uso del archivo de paginación"), unidades ("kilobytes")

Cantidad de espacio del archivo de paginación que un proceso está usando actualmente. Este valor es coherente con el valor de VMSize en TaskMgr.exe.

Ejemplo: 102435

ParentProcessId

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | Process status Process | System _ _ Information | InheritedFromUniqueProcessId"), displayName ("Parent Process ID")

Identificador único del proceso que crea un proceso. Los números de identificador de proceso se reutilizan, por lo que solo identifican un proceso para la duración de ese proceso. Es posible que el proceso identificado por ParentProcessId termine, de modo que ParentProcessId no puede hacer referencia a un proceso en ejecución. También es posible que ParentProcessId haga referencia incorrectamente a un proceso que reutiliza un identificador de proceso. Puede usar la propiedad CreationDate para determinar si se ha creado el elemento primario especificado después de que se haya creado el proceso representado por esta instancia de _ proceso de Win32 .

PeakPageFileUsage

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | Process status | _ Process System _ Information Information | PeakPagefileUsage"), displayName ("uso máximo de archivo de paginación"), unidades ("kilobytes")

Cantidad máxima de espacio de archivo de paginación utilizada durante la vida de un proceso.

Ejemplo: 102367

PeakVirtualSize

Tipo de datos: UInt64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | Process status | _ Process System _ Information Information | PeakVirtualSize"), displayName ("pico de uso de espacio de direcciones de virtual"), unidades ("bytes")

Espacio de direcciones virtuales máximo que utiliza un proceso en un momento dado. El uso del espacio de direcciones virtuales no implica necesariamente el uso correspondiente del disco o las páginas de memoria principal. Sin embargo, el espacio virtual es finito y, si se usa demasiado, es posible que el proceso no pueda cargar bibliotecas.

Para obtener más información sobre el uso de valores UInt64 en scripts, vea scripting en WMI.

PeakWorkingSetSize

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | Process status | _ Process System _ Information Information | PeakWorkingSetSize"), displayName ("tamaño máximo del espacio de trabajo"), unidades ("kilobytes")

Tamaño máximo del espacio de trabajo de un proceso.

Ejemplo: 1413120

Prioridad

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: override ("Priority"), MappingStrings ("inesperados win32api | Process status | Process System _ _ Information | BasePriority"), displayName ("Priority")

La prioridad de programación de un proceso dentro de un sistema operativo. Cuanto mayor sea el valor, más prioridad recibirá un proceso. Los valores de prioridad pueden oscilar entre 0 (cero), que es la prioridad más baja a 31, que es la prioridad más alta.

Ejemplo: 7

PrivatePageCount

Tipo de datos: UInt64

Tipo de acceso: solo lectura

Calificadores: MappingStrings (" | información de proceso del sistema de estado de proceso inesperados win32api | _ _ | PrivatePageCount"), displayName ("número de páginas privadas")

Número actual de páginas asignadas que solo son accesibles para el proceso representado por esta instancia de _ proceso de Win32 .

Para obtener más información sobre el uso de valores UInt64 en scripts, vea scripting en WMI.

ProcessId

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | Process and Thread Structures | Process _ Information | DwProcessId"), displayName ("Process ID")

Identificador numérico que se usa para distinguir un proceso de otro. Los ProcessIDs son válidos desde el momento de creación del proceso para la terminación del proceso. Tras la finalización, se puede aplicar el mismo identificador numérico a un nuevo proceso.

Esto significa que no puede usar ProcessID solo para supervisar un proceso determinado. Por ejemplo, una aplicación podría tener un ProcessID de 7 y, a continuación, producir un error. Cuando se inicia un nuevo proceso, se puede asignar el ID. de proceso 7 al nuevo proceso. Por lo tanto, un script que solo comprobó un ProcessID especificado podría "engañarse" para pensar que la aplicación original todavía se estaba ejecutando.

QuotaNonPagedPoolUsage

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings (" | | información de proceso del sistema de estado de proceso inesperados win32api _ _ | QuotaNonPagedPoolUsage"), displayName ("cuota de uso de bloque no paginado")

Cuota de uso de bloque no paginado para un proceso.

Ejemplo: 15

QuotaPagedPoolUsage

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings (" | | información de proceso del sistema de estado de proceso inesperados win32api _ _ | QuotaPagedPoolUsage"), displayName ("cuota de uso del grupo paginado")

Cuota de uso del grupo paginado para un proceso.

Ejemplo: 22

QuotaPeakNonPagedPoolUsage

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings (" | | información de proceso del sistema de estado de proceso inesperados win32api _ _ | QuotaPeakNonPagedPoolUsage"), displayName ("cuota máxima de uso de bloque no paginado")

Cantidad máxima de cuota de uso de bloque no paginado para un proceso.

Ejemplo: 31

QuotaPeakPagedPoolUsage

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings (" | | información de proceso del sistema de estado de proceso inesperados win32api _ _ | QuotaPeakPagedPoolUsage"), displayName ("cuota máxima de uso del grupo paginado")

Cantidad máxima de cuota de uso del grupo paginado para un proceso.

Ejemplo: 31

ReadOperationCount

Tipo de datos: UInt64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | de proceso y estructuras de subprocesos | información de proceso del sistema _ _ | ReadOperationCount"), displayName ("número de operaciones de lectura")

Número de operaciones de lectura realizadas.

Para obtener más información sobre el uso de valores UInt64 en scripts, vea scripting en WMI.

ReadTransferCount

Tipo de datos: UInt64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | Process and Thread Structures | información de proceso del sistema _ _ | ReadTransferCount"), displayName ("recuento de transferencias de lectura"), unidades ("bytes")

Cantidad de datos leídos.

Para obtener más información sobre el uso de valores UInt64 en scripts, vea scripting en WMI.

SessionId

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | Process status | System _ Process _ Information | SessionID"), displayName ("ID. de sesión")

Identificador único que genera un sistema operativo cuando se crea una sesión. Una sesión abarca un período de tiempo desde el inicio de sesión hasta el cierre de sesión desde un sistema específico.

Estado

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: MaxLen (10), displayName ("status")

Esta propiedad no está implementada y no se rellena para ninguna instancia de esta clase. Siempre es null.

Esta propiedad se hereda del _ ManagedSystemElement de CIM.

Los valores son los siguientes:

Aceptar ("Aceptar")

Error ("error")

Degradado ("degradado")

Desconocido ("desconocido")

Pred FAIL ("Pred FAIL")

Iniciando ("iniciando")

Detener ("detener")

Servicio ("servicio")

Con estrés ("acentuado")

Recover ("Recover")

Sin contacto ("sin contacto")

Comunicación perdida ("pérdida de comunicación")

TerminationDate

Tipo de datos: DateTime

Tipo de acceso: solo lectura

Calificadores: displayName ("fecha de finalización")

El proceso se detuvo o finalizó. Para obtener el tiempo de finalización, se debe mantener abierto un identificador del proceso. De lo contrario, esta propiedad devuelve null.

Esta propiedad se hereda del _ proceso CIM.

ThreadCount

Tipo de datos: UInt32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | Process status | _ Process System _ Information | NumberOfThreads"), displayName ("recuento de subprocesos")

Número de subprocesos activos en un proceso. Una instrucción es la unidad básica de ejecución en un procesador y un subproceso es el objeto que ejecuta una instrucción. Cada proceso en ejecución tiene al menos un subproceso.

UserModeTime

Tipo de datos: UInt64

Tipo de acceso: solo lectura

Calificadores: invalidación ("UserModeTime"), unidades ("100 nanosegundos")

Tiempo en modo de usuario, en unidades de 100 nanosegundos. Si esta información no está disponible, utilice un valor de 0 (cero).

Para obtener más información sobre el uso de valores UInt64 en scripts, vea scripting en WMI.

VirtualSize

Tipo de datos: UInt64

Tipo de acceso: solo lectura

Calificadores: MappingStrings (" | | información de proceso del sistema de estado de proceso inesperados win32api _ _ | VirtualSize"), displayName ("uso del espacio de direcciones virtuales"), unidades ("bytes")

Tamaño actual del espacio de direcciones virtuales que usa un proceso, no de la memoria física o virtual usada realmente por el proceso. El uso del espacio de direcciones virtuales no implica necesariamente el uso correspondiente del disco o las páginas de memoria principal. El espacio virtual es finito y, si se usa demasiado, es posible que el proceso no pueda cargar bibliotecas. Este valor es coherente con lo que se ve en Perfmon.exe.

Para obtener más información sobre el uso de valores UInt64 en scripts, vea scripting en WMI.

WindowsVersion

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | Process and Thread Functions | GetProcessVersion"), displayName ("Windows version")

Versión de Windows en la que se está ejecutando el proceso.

Ejemplo: 4,0

WorkingSetSize

Tipo de datos: UInt64

Tipo de acceso: solo lectura

Calificadores: displayName ("tamaño del espacio de trabajo"), unidades ("bytes")

Cantidad de memoria en bytes que un proceso necesita ejecutar de forma eficaz — para un sistema operativo que usa la administración de memoria basada en páginas. Si el sistema no tiene suficiente memoria (menos que el tamaño del espacio de trabajo), se produce la paginación excesiva. Si no se conoce el tamaño del espacio de trabajo, utilice null o 0 (cero). Si se proporcionan datos del espacio de trabajo, puede supervisar la información para comprender los requisitos de memoria variables de un proceso.

Para obtener más información sobre el uso de valores UInt64 en scripts, vea scripting en WMI.

Esta propiedad se hereda del _ proceso CIM.

WriteOperationCount

Tipo de datos: UInt64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | de proceso y estructuras de subprocesos | información de proceso del sistema _ _ | WriteOperationCount"), displayName ("número de operaciones de escritura")

Número de operaciones de escritura realizadas.

Para obtener más información sobre el uso de valores UInt64 en scripts, vea scripting en WMI.

WriteTransferCount

Tipo de datos: UInt64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("inesperados win32api | Process and Thread Structures | información de proceso del sistema _ _ | WriteTransferCount"), displayName ("recuento de transferencias de escritura"), unidades ("bytes")

Cantidad de datos escritos.

Para obtener más información sobre el uso de valores UInt64 en scripts, vea scripting en WMI.

Observaciones

La clase de _ proceso de Win32 se deriva del _ proceso CIM. El proceso de llamada que usa esta clase debe tener el privilegio de _ _ nombre de restauración se en el equipo en el que reside el registro. Para obtener más información, vea ejecutar operaciones con privilegios.

Información general

Los procesos subyacen casi todo lo que ocurre en un equipo. De hecho, se puede realizar un seguimiento de la causa principal de la mayoría de los problemas del equipo con los procesos; por ejemplo, se podrían estar ejecutando demasiados procesos en un equipo (y se está consiguiendo un conjunto finito de recursos), o bien un único proceso podría estar usando más de su recurso compartido de recursos. Estos factores hacen que sea importante mantener una observación cercana en los procesos que se ejecutan en un equipo. La supervisión de procesos, la actividad principal en la administración de procesos, permite determinar lo que realmente hace un equipo, qué aplicaciones ejecuta el equipo y cómo se ven afectadas por los cambios en el entorno informático.

Supervisión de un proceso

La supervisión de procesos de forma periódica le ayuda a garantizar que un equipo se ejecute con una eficacia máxima y que lleve a cabo sus tareas designadas según lo previsto. Por ejemplo, mediante la supervisión de procesos se puede recibir una notificación inmediata de cualquier aplicación que haya dejado de responder y, a continuación, realizar los pasos necesarios para finalizar el proceso. Además, la supervisión de procesos permite identificar problemas antes de que se produzcan. Por ejemplo, al comprobar repetidamente la cantidad de memoria usada por un proceso, puede identificar una fuga de memoria. Después, puede detener el proceso antes de que la aplicación errante utilice toda la memoria disponible y el equipo se detenga.

La supervisión de procesos también ayuda a minimizar las interrupciones causadas por las interrupciones planeadas para las actualizaciones y el mantenimiento. Por ejemplo, al comprobar el estado de una aplicación de base de datos que se ejecuta en los equipos cliente, puede determinar el impacto de dejar la base de datos sin conexión para actualizar el software.

Supervisión de la disponibilidad del proceso. Mide el porcentaje de tiempo que un proceso está disponible. La disponibilidad normalmente se supervisa mediante el uso de un sondeo simple, que indica si el proceso sigue en ejecución. Al realizar un seguimiento de los resultados de cada sondeo, puede calcular la disponibilidad del proceso. Por ejemplo, un proceso que se sondea 100 veces y responde en 95 de esas ocasiones tiene una disponibilidad del 95 por ciento. Este tipo de supervisión normalmente se reserva para las bases de datos, programas de correo y otras aplicaciones que se espera que se ejecuten en todo momento. No es adecuado para programas de procesamiento de texto, hojas de cálculo u otras aplicaciones que se inician de forma rutinaria y se detienen varias veces al día.

Puede crear una instancia de la clase Win32 _ ProcessStartup para configurar el proceso.

Puede supervisar el rendimiento de los procesos con la clase de proceso de Win32 _ PerfFormattedData _ PerfProc _ y un objeto de actualizador de WMI, como SWbemRefresher. Para obtener más información, vea supervisar datos de rendimiento.

Ejemplos

En el ejemplo de código de PowerShell de las propiedades de las clases WMI de la galería de TechNet se describe la clase de _ proceso de Win32 y se muestran los resultados en formato de Excel.

El proceso de finalización en ejecución en varios servidores finaliza un proceso que se ejecuta en uno o varios equipos.

En el tema ejemplo: llamar a un método de proveedor , el código usa C++ para llamar al _ proceso de Win32 para crear un proceso.

La disponibilidad es la forma más sencilla de supervisión de procesos: con este enfoque, solo tiene que asegurarse de que el proceso se está ejecutando. Al supervisar la disponibilidad de los procesos, normalmente se recupera una lista de procesos que se ejecutan en un equipo y, a continuación, se comprueba que un proceso determinado todavía está activo. Si el proceso está activo, se considera que está disponible. Si el proceso no está activo, no está disponible. El siguiente ejemplo de VBScript supervisa la disponibilidad del proceso mediante la comprobación de la lista de procesos que se ejecutan en un equipo y la emisión de una notificación si no se encuentra el proceso de Database.exe.

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

El siguiente ejemplo de VBScript supervisa la creación de procesos mediante un consumidor de eventos temporal.

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

El siguiente VBScript supervisa la información de rendimiento del proceso.

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

En el ejemplo de código de VBScript siguiente se muestra cómo obtener el propietario de cada proceso en un equipo local. Puede usar este script para obtener datos de un equipo remoto, por ejemplo, para determinar qué usuarios tienen procesos que ejecutan Terminal Server, sustituya el nombre del equipo remoto por "." en la primera línea. También debe ser administrador en el equipo remoto.

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

En el ejemplo de código de VBScript siguiente se muestra cómo obtener la sesión de inicio de sesión asociada a un proceso en ejecución. Un proceso debe estar en ejecución Notepad.exe antes de que se inicie el script. En el ejemplo se buscan las instancias de Win32 _ LogonSession asociadas al _ proceso de Win32 que representa Notepad.exe. Win32 _ SessionProcess se especifica como la clase Association. Para obtener más información, vea 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

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Espacio de nombres
Origen de \ cimv2
MOF
CIMWin32. mof
Archivo DLL
CIMWin32.dll

Vea también

_Proceso CIM

Clases de sistema operativo

Tareas de WMI: procesos