Clase Win32_Process

La Win32_Processclase WMI 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 procesos y subprocesos en Windows, consulte 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;
  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 Win32_Process tiene estos tipos de miembros:

Métodos

La clase Win32_Process tiene estos métodos.

Método Descripción
AttachDebugger Inicia el depurador registrado actualmente para un proceso.
Crear Crea un nuevo proceso.
GetAvailableVirtualSize Recupera el tamaño actual, en bytes, del espacio de direcciones virtuales 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 ejecuta el proceso.
GetOwnerSid Recupera el identificador de seguridad (SID) para el 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 Win32_Process tiene estas propiedades.

Caption

Tipo de datos: cadena

Tipo de acceso: solo lectura

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

Descripción breve de un objeto: una cadena de una sola línea.

Esta propiedad se hereda de CIM_ManagedSystemElement.

CommandLine

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: DisplayName ("Línea de comandos para iniciar el proceso")

Línea de comandos usada para iniciar un proceso específico, si procede.

CreationClassName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: CIM_Key, MaxLen (256), DisplayName ("Nombre de clase")

Nombre de la clase o subclase usada en la creación de una instancia. Cuando se usa con otras propiedades clave de la clase , esta propiedad permite identificar todas las instancias de la clase y sus subclases.

Esta propiedad se hereda de CIM_Process.

CreationDate

Tipo de datos: datetime

Tipo de acceso: solo lectura

Calificadores: Fixed, DisplayName ("CreationDate")

Fecha en que el proceso comienza a ejecutarse.

Esta propiedad se hereda de CIM_Process.

CSCreationClassName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: propagados ("CIM_OperatingSystem. CSCreationClassName"), CIM_Key, MaxLen (256), DisplayName ("Nombre de clase de sistema de equipo")

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

Esta propiedad se hereda de CIM_Process.

CSName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: propagados ("CIM_OperatingSystem. CSName"), CIM_Key, MaxLen (256), DisplayName ("Nombre del sistema de equipo")

Nombre del sistema informático de ámbito.

Esta propiedad se hereda de CIM_Process.

Descripción

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: DisplayName ("Descripción")

Descripción de un objeto .

Esta propiedad se hereda de CIM_ManagedSystemElement.

ExecutablePath

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: Privilegios ("SeDebugPrivilege"), MappingStrings ("Win32API| Estructuras de ayuda de herramientas | MODULEENTRY32|szExePath"), DisplayName ("Ruta de acceso 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 de CIM_Process.

Desconocido (0)

Desconocido

Otros (1)

Otros

Listo (2)

En ejecución (3)

Bloqueado (4)

Bloqueado

Suspendido bloqueado (5)

Suspendido listo (6)

Finalizado (7)

Detenido (8)

Crecimiento (9)

Handle

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: Key, MaxLen (256), DisplayName ("Handle")

Identificador de proceso.

Esta propiedad se hereda de CIM_Process.

HandleCount

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso| SYSTEM_PROCESS_INFORMATION| HandleCount"), DisplayName ("Número de identificadores")

Número total de identificadores abiertos que pertenecen al proceso. HandleCount es la suma de los identificadores abiertos actualmente por cada subproceso de este proceso. Se usa un identificador para examinar o modificar los recursos del sistema. Cada identificador 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 ("Fecha de instalación")

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 de CIM_ManagedSystemElement.

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, use un valor de 0 (cero).

Para más información sobre el uso de valores uint64 en scripts, vea Scripting in WMI.

MaximumWorkingSetSize

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: Privilegios ("SeDebugPrivilege"), MappingStrings ("Win32| WINNT. H| QUOTA_LIMITS| MaximumWorkingSetSize"), DisplayName ("Tamaño máximo del conjunto de trabajo"), Unidades ("kilobytes")

Tamaño máximo del conjunto de trabajo del proceso. El conjunto 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 se use sin desencadenar un error de página.

Ejemplo: 1413120

MinimumWorkingSetSize

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: Privilegios ("SeDebugPrivilege"), MappingStrings ("Win32| WINNT. H| QUOTA_LIMITS| MinimumWorkingSetSize"), DisplayName ("Tamaño mínimo del conjunto de trabajo"), unidades ("kilobytes")

Tamaño mínimo del conjunto de trabajo del proceso. El conjunto 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 Image Name del Administrador de tareas.

Cuando se hereda por una subclase, la propiedad se puede invalidar para que sea una propiedad de clave. El nombre está codificado de forma rígida en la propia aplicación y no se ve afectado al cambiar el 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 los scripts WMI que recuperen el nombre del proceso.

Esta propiedad se hereda de CIM_ManagedSystemElement.

OSCreationClassName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: propagados ("CIM_OperatingSystem. CreationClassName"), CIM_Key, MaxLen (256), DisplayName ("Nombre de clase de sistema operativo")

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

Esta propiedad se hereda de CIM_Process.

OSName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: propagados ("CIM_OperatingSystem. Name"), CIM_Key, MaxLen (256), DisplayName ("Nombre del sistema operativo")

Nombre del sistema operativo de ámbito.

Esta propiedad se hereda de CIM_Process.

OtherOperationCount

Tipo de datos: uint64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | SYSTEM_PROCESS_INFORMATION| OtherOperationCount"), DisplayName ("Otro recuento de operaciones")

Número de operaciones de E/S realizadas que no son operaciones de lectura o escritura.

Para más información sobre el uso de valores uint64 en scripts, vea Scripting in WMI.

OtherTransferCount

Tipo de datos: uint64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | SYSTEM_PROCESS_INFORMATION| OtherTransferCount"), DisplayName ("Other Transfer Count"), Units ("bytes")

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

Para más información sobre el uso de valores uint64 en scripts, vea Scripting in WMI.

PageFaults

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso| SYSTEM_PROCESS_INFORMATION| 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 ("Win32API| Estado del proceso| SYSTEM_PROCESS_INFORMATION| PagefileUsage"), DisplayName ("Page File Usage"), Units ("kilobytes")

Cantidad de espacio de archivo de página que un proceso está usando actualmente. Este valor es coherente con el valor vmSize en TaskMgr.exe.

Ejemplo: 102435

ParentProcessId

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso| SYSTEM_PROCESS_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 durante la vigencia de ese proceso. Es posible que finalice el proceso identificado por ParentProcessId , por lo que ParentProcessId puede no 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 creó el elemento primario especificado después del proceso representado por esta instancia de Win32_Process .

PeakPageFileUsage

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso | SYSTEM_PROCESS_INFORMATION| PeakPagefileUsage"), DisplayName ("Peak Page File Usage"), Units ("kilobytes")

Cantidad máxima de espacio de archivo de página utilizado durante la vida de un proceso.

Ejemplo: 102367

PeakVirtualSize

Tipo de datos: uint64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso | SYSTEM_PROCESS_INFORMATION| PeakVirtualSize"), DisplayName ("Uso de espacio de direcciones viruales pico"), unidades ("bytes")

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

Para más información sobre el uso de valores uint64 en scripts, vea Scripting in WMI.

PeakWorkingSetSize

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso | SYSTEM_PROCESS_INFORMATION| PeakWorkingSetSize"), DisplayName ("Peak Working Set Size"), Units ("kilobytes")

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

Ejemplo: 1413120

Prioridad

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: Invalidación ("Prioridad"), MappingStrings ("Win32API| Estado del proceso | SYSTEM_PROCESS_INFORMATION| BasePriority"), DisplayName ("Priority")

Prioridad de programación de un proceso dentro de un sistema operativo. Cuanto mayor sea el valor, mayor prioridad recibe 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 ("Win32API| Estado del proceso | SYSTEM_PROCESS_INFORMATION| PrivatePageCount"), DisplayName ("Recuento de páginas privadas")

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

Para más información sobre el uso de valores uint64 en scripts, vea Scripting in WMI.

ProcessId

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | PROCESS_INFORMATION|dwProcessId "), DisplayName ("Id. de proceso")

Identificador numérico usado para distinguir un proceso de otro. Los Identificadores de proceso son válidos desde el momento de creación del proceso hasta la finalización del proceso. Tras la finalización, ese mismo identificador numérico se puede aplicar 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 podría asignar el nuevo proceso ProcessID 7. Por lo tanto, un script que solo comprueba un ProcessID especificado podría "engañarse" al pensar que la aplicación original todavía se estaba ejecutando.

QuotaNonPagedPoolUsage

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso | SYSTEM_PROCESS_INFORMATION| QuotaNonPagedPoolUsage"), DisplayName ("Cuota de uso de grupo no paginado")

Cantidad de cuota de uso de grupo no paginado para un proceso.

Ejemplo: 15

QuotaPagedPoolUsage

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso | SYSTEM_PROCESS_INFORMATION| QuotaPagedPoolUsage"), DisplayName ("Cuota de uso del grupo paginado")

Cantidad de cuota del uso del grupo paginado para un proceso.

Ejemplo: 22

QuotaPeakNonPagedPoolUsage

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso | SYSTEM_PROCESS_INFORMATION| QuotaPeakNonPagedPoolUsage"), DisplayName ("Cuota de uso de grupo no paginado máxima")

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

Ejemplo: 31

QuotaPeakPagedPoolUsage

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso | SYSTEM_PROCESS_INFORMATION| QuotaPeakPagedPoolUsage"), DisplayName ("Cuota máxima de uso del grupo paginado")

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

Ejemplo: 31

ReadOperationCount

Tipo de datos: uint64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | SYSTEM_PROCESS_INFORMATION| ReadOperationCount"), DisplayName ("Recuento de operaciones de lectura")

Número de operaciones de lectura realizadas.

Para más información sobre el uso de valores uint64 en scripts, vea Scripting in WMI.

ReadTransferCount

Tipo de datos: uint64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | SYSTEM_PROCESS_INFORMATION| ReadTransferCount"), DisplayName ("Recuento de transferencias de lectura"), unidades ("bytes")

Cantidad de datos leídos.

Para más información sobre el uso de valores uint64 en scripts, vea Scripting in WMI.

SessionId

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso | 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 inicio 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 se implementa y no se rellena para ninguna instancia de esta clase. Siempre es NULL.

Esta propiedad se hereda de CIM_ManagedSystemElement.

Los valores son los siguientes:

Ok ("OK")

Error ("Error")

Degradado ("Degradado")

Desconocido ("Desconocido")

Pred Fail ("Pred Fail ")

Inicio ("Inicio")

Detener ("Detener")

Servicio ("Servicio")

Estresado ("Estresado")

NonRecover ("NonRecover")

Sin contacto ("Sin contacto")

Lost Comm ("Lost Comm")

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 para el proceso. De lo contrario, esta propiedad devuelve NULL.

Esta propiedad se hereda de CIM_Process.

ThreadCount

Tipo de datos: uint32

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso| SYSTEM_PROCESS_INFORMATION| NumberOfThreads"), DisplayName ("Número 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 usuario, en unidades de 100 nanosegundos. Si esta información no está disponible, use un valor de 0 (cero).

Para más información sobre el uso de valores uint64 en scripts, vea Scripting in WMI.

VirtualSize

Tipo de datos: uint64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estado del proceso| SYSTEM_PROCESS_INFORMATION| VirtualSize"), DisplayName ("Uso del espacio de direcciones virtuales"), unidades ("bytes")

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

Para más información sobre el uso de valores uint64 en scripts, vea Scripting in WMI.

WindowsVersion

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Funciones de proceso y subproceso | GetProcessVersion"), DisplayName ("Versión de Windows")

Versión de Windows en la que se ejecuta el proceso.

Ejemplo: 4.0

WorkingSetSize

Tipo de datos: uint64

Tipo de acceso: solo lectura

Calificadores: DisplayName ("Tamaño del conjunto 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 (menor que el tamaño del conjunto de trabajo), se produce la limitación. Si no se conoce el tamaño del conjunto de trabajo, use NULL o 0 (cero). Si se proporcionan datos del conjunto de trabajo, puede supervisar la información para comprender los requisitos de memoria cambiantes de un proceso.

Para más información sobre el uso de valores uint64 en scripts, vea Scripting in WMI.

Esta propiedad se hereda de CIM_Process.

WriteOperationCount

Tipo de datos: uint64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | SYSTEM_PROCESS_INFORMATION| WriteOperationCount"), DisplayName ("Recuento de operaciones de escritura")

Número de operaciones de escritura realizadas.

Para más información sobre el uso de valores uint64 en scripts, vea Scripting in WMI.

WriteTransferCount

Tipo de datos: uint64

Tipo de acceso: solo lectura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | SYSTEM_PROCESS_INFORMATION| WriteTransferCount"), DisplayName ("Recuento de transferencias de escritura"), unidades ("bytes")

Cantidad de datos escritos.

Para más información sobre el uso de valores uint64 en scripts, vea Scripting in WMI.

Comentarios

La clase Win32_Process se deriva de CIM_Process. El proceso de llamada que usa esta clase debe tener el privilegio SE_RESTORE_NAME en el equipo en el que reside el Registro. Para más información, vea Ejecución de operaciones con privilegios.

Información general

Los procesos subyacen a casi todo lo que sucede en un equipo. De hecho, la causa principal de la mayoría de los problemas informáticos se pueden rastrear en procesos; por ejemplo, es posible que demasiados procesos se ejecuten en un equipo (y que consienten un conjunto finito de recursos) o que un único proceso esté usando más que su recurso compartido de recursos. Estos factores hacen que sea importante mantener un watch cercano 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 qué hace realmente 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 máxima eficiencia y que lleve a cabo sus tareas designadas según lo previsto. Por ejemplo, mediante la supervisión de procesos, puede recibir una notificación inmediata de cualquier aplicación que haya dejado de responder y, a continuación, siga los pasos necesarios para finalizar ese proceso. Además, la supervisión de procesos le permite identificar problemas antes de que se produzcan. Por ejemplo, comprobando repetidamente la cantidad de memoria usada por un proceso, puede identificar una pérdida de memoria. A continuación, puede detener el proceso antes de que la aplicación errante use toda la memoria disponible y detenga el equipo.

La supervisión de procesos también ayuda a minimizar las interrupciones causadas por 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 equipos cliente, puede determinar el impacto de desconectar la base de datos para actualizar el software.

Supervisión de la disponibilidad del proceso. Mide el porcentaje de tiempo que un proceso está disponible. La disponibilidad se supervisa normalmente mediante el uso de un sondeo simple, que informa de si el proceso todavía se está ejecutando. 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 se reserva normalmente para 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 y detienen periódicamente varias veces al día.

Puede crear una instancia de la clase Win32_ProcessStartup para configurar el proceso.

Puede supervisar el rendimiento del proceso con la clase Win32_PerfFormattedData_PerfProc_Process y un objeto de actualizador WMI, como SWbemRefresher. Para obtener más información, consulte Supervisión de datos de rendimiento.

Ejemplos

El ejemplo de código enumerar las propiedades de clases de WMI de PowerShell en la Galería de TechNet describe la clase Win32_Process y genera los resultados en formato de Excel.

El proceso finalizar en ejecución en varios servidores finaliza un proceso que se ejecuta en un solo equipo o varios.

En el tema Ejemplo: Llamar a un método de proveedor , el código usa C++ para llamar a Win32_Process para crear un proceso.

La disponibilidad es la forma más sencilla de supervisión de procesos: con este enfoque, simplemente se asegura de que el proceso se está ejecutando. Al supervisar la disponibilidad del proceso, normalmente se recupera una lista de procesos que se ejecutan en un equipo y, a continuación, se comprueba que un proceso determinado sigue activo. Si el proceso está activo, se considera disponible. Si el proceso no está activo, no está disponible. El siguiente ejemplo de VBScript supervisa la disponibilidad del proceso comprobando la lista de procesos que se ejecutan en un equipo y emitiendo 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

En el ejemplo siguiente de VBScript se 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 siguiente ejemplo de código de VBScript 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 siguiente ejemplo de código de VBScript se muestra cómo obtener la sesión de inicio de sesión asociada a un proceso en ejecución. Un proceso debe ejecutarse Notepad.exe antes de que se inicie el script. En el ejemplo se localizan las instancias de Win32_LogonSession asociadas al Win32_Process que representa Notepad.exe. Win32_SessionProcess se especifica como la clase de asociación. 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
Root\CIMV2
MOF
CIMWin32.mof
Archivo DLL
CIMWin32.dll

Consulte también

CIM_Process

Clases de sistema operativo

Tareas de WMI: procesos