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 |
|
Archivo DLL |
|
Consulte también