Classe Win32_Process

A classe WMIWin32_Process representa um processo em um sistema operacional.

A sintaxe a seguir é simplificada do código MOF (Managed Object Format) e inclui todas as propriedades herdadas.

Observação

Para obter uma discussão geral sobre processos e threads no Windows, consulte o tópico Processos e Threads.

Sintaxe

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

Membros

A classe Win32_Process tem estes tipos de membros:

Métodos

A classe Win32_Process tem esses métodos.

Método Descrição
AttachDebugger Inicia o depurador registrado no momento para um processo.
Criar Cria um novo processo.
GetAvailableVirtualSize Recupera o tamanho atual, em bytes, do espaço de endereço virtual gratuito disponível para o processo.
Windows Server 2012, Windows 8, Windows 7, Windows Server 2008 e Windows Vista: esse método não tem suporte antes Windows 8.1 e Windows Server 2012 R2.
GetOwner Recupera o nome de usuário e o nome de domínio no qual o processo está em execução.
GetOwnerSid Recupera o SID (identificador de segurança) para o proprietário de um processo.
Setpriority Altera a prioridade de execução de um processo.
Encerrar Encerra um processo e todos os seus threads.

 

Propriedades

A classe Win32_Process tem essas propriedades.

Legenda

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

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

Descrição curta de um objeto — uma cadeia de caracteres de uma linha.

Essa propriedade é herdada de CIM_ManagedSystemElement.

CommandLine

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: DisplayName ("Linha de comando para iniciar o processo")

Linha de comando usada para iniciar um processo específico, se aplicável.

CreationClassName

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: CIM_Key, MaxLen (256), DisplayName ("Nome da Classe")

Nome da classe ou subclasse usada na criação de uma instância. Quando usada com outras propriedades de chave da classe , essa propriedade permite que todas as instâncias da classe e suas subclasses sejam identificadas exclusivamente.

Essa propriedade é herdada de CIM_Process.

CreationDate

Tipo de dados: datetime

Tipo de acesso: Somente leitura

Qualificadores: Fixo, DisplayName ("CreationDate")

Data em que o processo começa a ser executado.

Essa propriedade é herdada de CIM_Process.

CSCreationClassName

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: Propagados ("CIM_OperatingSystem. CSCreationClassName"), CIM_Key, MaxLen (256), DisplayName ("Nome da Classe do Sistema do Computador")

Nome da classe de criação do sistema de computador de escopo.

Essa propriedade é herdada de CIM_Process.

CSName

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: Propagados ("CIM_OperatingSystem. CSName"), CIM_Key, MaxLen (256), DisplayName ("Nome do Sistema do Computador")

Nome do sistema de computador de escopo.

Essa propriedade é herdada de CIM_Process.

Descrição

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: DisplayName ("Description")

Descrição de um objeto .

Essa propriedade é herdada de CIM_ManagedSystemElement.

Executablepath

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: Privilégios ("SeDebugPrivilege"), MappingStrings ("Win32API| Estruturas de Ajuda da Ferramenta| MODULEENTRY32|szExePath"), DisplayName ("Caminho Executável")

Caminho para o arquivo executável do processo.

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

ExecutionState

Tipo de dados: uint16

Tipo de acesso: Somente leitura

Qualificadores: DisplayName ("Estado de Execução")

Condição operacional atual do processo.

Essa propriedade é herdada de CIM_Process.

Desconhecido (0)

Unknown

Outros (1)

Outro

Pronto (2)

Em execução (3)

Bloqueado (4)

Bloqueado

Bloqueado Suspenso (5)

Pronto Suspenso (6)

Encerrado (7)

Parado (8)

Crescendo (9)

Handle

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

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

Identificador de processo.

Essa propriedade é herdada de CIM_Process.

HandleCount

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| HandleCount"), DisplayName ("Contagem de Identificadores")

Número total de identificadores abertos pertencentes ao processo. HandleCount é a soma dos identificadores abertos atualmente por cada thread nesse processo. Um identificador é usado para examinar ou modificar os recursos do sistema. Cada identificador tem uma entrada em uma tabela que é mantida internamente. As entradas contêm os endereços dos recursos e dados para identificar o tipo de recurso.

InstallDate

Tipo de dados: datetime

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("MIF. DMTF| ComponentID|001.5"), DisplayName ("Data de Instalação")

Data em que um objeto é instalado. O objeto pode ser instalado sem que um valor seja gravado nessa propriedade.

Essa propriedade é herdada de CIM_ManagedSystemElement.

KernelModeTime

Tipo de dados: uint64

Tipo de acesso: Somente leitura

Qualificadores: Substituição ("KernelModeTime"), Unidades ("100 nanossegundos")

Tempo no modo kernel, em milissegundos. Se essas informações não estiverem disponíveis, use um valor igual a 0 (zero).

Para obter mais informações sobre como usar valores uint64 em scripts, consulte Scripts no WMI.

MaximumWorkingSetSize

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: Privilégios ("SeDebugPrivilege"), MappingStrings ("Win32| WINNT. H| QUOTA_LIMITS| MaximumWorkingSetSize"), DisplayName ("Tamanho máximo do conjunto de trabalho"), unidades ("kilobytes")

Tamanho máximo do conjunto de trabalho do processo. O conjunto de trabalho de um processo é o conjunto de páginas de memória visível para o processo em RAM física. Essas páginas são residentes e estão disponíveis para um aplicativo usar sem disparar uma falha de página.

Exemplo: 1413120

MinimumWorkingSetSize

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: Privilégios ("SeDebugPrivilege"), MappingStrings ("Win32| WINNT. H| QUOTA_LIMITS| MinimumWorkingSetSize"), DisplayName ("Tamanho mínimo do conjunto de trabalho"), unidades ("kilobytes")

Tamanho mínimo do conjunto de trabalho do processo. O conjunto de trabalho de um processo é o conjunto de páginas de memória visível para o processo em RAM física. Essas páginas são residentes e estão disponíveis para um aplicativo usar sem disparar uma falha de página.

Exemplo: 20480

Nome

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: DisplayName ("Name")

Nome do arquivo executável responsável pelo processo, equivalente à propriedade Nome da Imagem no Gerenciador de Tarefas.

Quando herdada por uma subclasse, a propriedade pode ser substituída para ser uma propriedade de chave. O nome é embutido em código no próprio aplicativo e não é afetado pela alteração do nome do arquivo. Por exemplo, mesmo que você renomeie Calc.exe, o nome Calc.exe ainda aparecerá no Gerenciador de Tarefas e em qualquer script WMI que recupere o nome do processo.

Essa propriedade é herdada de CIM_ManagedSystemElement.

OSCreationClassName

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: Propagados ("CIM_OperatingSystem. CreationClassName"), CIM_Key, MaxLen (256), DisplayName ("Nome da Classe do Sistema Operacional")

Nome da classe de criação do sistema operacional de escopo.

Essa propriedade é herdada de CIM_Process.

OSName

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: Propagados ("CIM_OperatingSystem. Nome"), CIM_Key, MaxLen (256), DisplayName ("Nome do Sistema Operacional")

Nome do sistema operacional de escopo.

Essa propriedade é herdada de CIM_Process.

OtherOperationCount

Tipo de dados: uint64

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread| SYSTEM_PROCESS_INFORMATION| OtherOperationCount"), DisplayName ("Outra Contagem de Operações")

Número de operações de E/S executadas que não são operações de leitura ou gravação.

Para obter mais informações sobre como usar valores uint64 em scripts, consulte Scripts no WMI.

OtherTransferCount

Tipo de dados: uint64

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread| SYSTEM_PROCESS_INFORMATION| OtherTransferCount"), DisplayName ("Outra Contagem de Transferência"), Unidades ("bytes")

Quantidade de dados transferidos durante operações que não são operações de leitura ou gravação.

Para obter mais informações sobre como usar valores uint64 em scripts, consulte Scripts no WMI.

PageFaults

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| PageFaultCount"), DisplayName ("Número de falhas de página")

Número de falhas de página geradas por um processo.

Exemplo: 10

PageFileUsage

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| PagefileUsage"), DisplayName ("Uso do Arquivo de Página"), Unidades ("quilobytes")

Quantidade de espaço de arquivo de página que um processo está usando no momento. Esse valor é consistente com o valor VMSize em TaskMgr.exe.

Exemplo: 102435

ParentProcessId

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| InheritedFromUniqueProcessId"), DisplayName ("ID do processo pai")

Identificador exclusivo do processo que cria um processo. Os números do identificador de processo são reutilizados, portanto, eles identificam apenas um processo durante o tempo de vida desse processo. É possível que o processo identificado por ParentProcessId seja encerrado, portanto , ParentProcessId pode não se referir a um processo em execução. Também é possível que ParentProcessId se refira incorretamente a um processo que reutiliza um identificador de processo. Você pode usar a propriedade CreationDate para determinar se o pai especificado foi criado depois que o processo representado por essa instância Win32_Process foi criado.

PeakPageFileUsage

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| PeakPagefileUsage"), DisplayName ("Uso de Arquivo de Página de Pico"), Unidades ("kilobytes")

Quantidade máxima de espaço de arquivo de página usado durante a vida útil de um processo.

Exemplo: 102367

PeakVirtualSize

Tipo de dados: uint64

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| PeakVirtualSize"), DisplayName ("Pico de Uso de Espaço de Endereço Virual"), Unidades ("bytes")

Espaço máximo de endereço virtual que um processo usa ao mesmo tempo. O uso do espaço de endereço virtual não implica necessariamente o uso correspondente de páginas de memória de disco ou main. No entanto, o espaço virtual é finito e, usando muito, o processo pode não ser capaz de carregar bibliotecas.

Para obter mais informações sobre como usar valores uint64 em scripts, consulte Scripts no WMI.

PeakWorkingSetSize

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| PeakWorkingSetSize"), DisplayName ("Peak Working Set Size"), Units ("kilobytes")

Tamanho máximo do conjunto de trabalho de um processo.

Exemplo: 1413120

Prioridade

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: Substituição ("Prioridade"), MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| BasePriority"), DisplayName ("Priority")

Prioridade de agendamento de um processo em um sistema operacional. Quanto maior o valor, maior a prioridade que um processo recebe. Os valores de prioridade podem variar de 0 (zero), que é a prioridade mais baixa a 31, que é a prioridade mais alta.

Exemplo: 7

PrivatePageCount

Tipo de dados: uint64

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| PrivatePageCount"), DisplayName ("Private Page Count")

Número atual de páginas alocadas que só podem ser acessadas para o processo representado por essa instância Win32_Process .

Para obter mais informações sobre como usar valores uint64 em scripts, consulte Scripts no WMI.

ProcessId

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread| PROCESS_INFORMATION|dwProcessId "), DisplayName ("ID do processo")

Identificador numérico usado para distinguir um processo de outro. ProcessIDs são válidos desde o tempo de criação do processo até o término do processo. Após o encerramento, esse mesmo identificador numérico pode ser aplicado a um novo processo.

Isso significa que você não pode usar o ProcessID sozinho para monitorar um processo específico. Por exemplo, um aplicativo pode ter uma ProcessID de 7 e, em seguida, falhar. Quando um novo processo é iniciado, o novo processo pode ser atribuído ao ProcessID 7. Um script que verificava apenas um ProcessID especificado poderia, portanto, ser "enganado" ao pensar que o aplicativo original ainda estava em execução.

QuotaNonPagedPoolUsage

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| QuotaNonPagedPoolUsage"), DisplayName ("Cota de uso de pool não paginado")

Quantidade de cota de uso de pool nãopagado para um processo.

Exemplo: 15

QuotaPagedPoolUsage

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| QuotaPagedPoolUsage"), DisplayName ("Cota de uso do pool de páginas")

Quantidade de cota de uso de pool paginado para um processo.

Exemplo: 22

QuotaPeakNonPagedPoolUsage

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| QuotaPeakNonPagedPoolUsage"), DisplayName ("Cota de uso de pool não paginado de pico")

Quantidade de cota de pico de uso de pool nãopagado para um processo.

Exemplo: 31

QuotaPeakPagedPoolUsage

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| QuotaPeakPagedPoolUsage"), DisplayName ("Cota de uso do pool de páginas de pico")

Quantidade de cota de pico de uso de pool paginado para um processo.

Exemplo: 31

ReadOperationCount

Tipo de dados: uint64

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread| SYSTEM_PROCESS_INFORMATION| ReadOperationCount"), DisplayName ("Contagem de Operações de Leitura")

Número de operações de leitura executadas.

Para obter mais informações sobre como usar valores uint64 em scripts, consulte Scripts no WMI.

ReadTransferCount

Tipo de dados: uint64

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread| SYSTEM_PROCESS_INFORMATION| ReadTransferCount"), DisplayName ("Contagem de Transferência de Leitura"), Unidades ("bytes")

Quantidade de dados lidos.

Para obter mais informações sobre como usar valores uint64 em scripts, consulte Scripts no WMI.

SessionId

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| SessionId"), DisplayName ("ID da sessão")

Identificador exclusivo que um sistema operacional gera quando uma sessão é criada. Uma sessão abrange um período de tempo do logon até o logoff de um sistema específico.

Status

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: MaxLen (10), DisplayName ("Status")

Essa propriedade não é implementada e não é preenchida para nenhuma instância dessa classe. É sempre NULL.

Essa propriedade é herdada de CIM_ManagedSystemElement.

Os valores incluem o seguinte:

OK ("OK")

Erro ("Erro")

Degradado ("Degradado")

Desconhecido ("Desconhecido")

Falha de pred ("Falha de pred")

Iniciando ("Iniciando")

Parando ("Parando")

Serviço ("Serviço")

Estressado ("Estressado")

NonRecover ("NonRecover")

Sem Contato ("Sem Contato")

Lost Comm ("Lost Comm")

TerminationDate

Tipo de dados: datetime

Tipo de acesso: Somente leitura

Qualificadores: DisplayName ("Data de Término")

O processo foi interrompido ou encerrado. Para obter a hora de término, um identificador para o processo deve ser mantido aberto. Caso contrário, essa propriedade retornará NULL.

Essa propriedade é herdada de CIM_Process.

Threadcount

Tipo de dados: uint32

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| NumberOfThreads"), DisplayName ("Contagem de Threads")

Número de threads ativos em um processo. Uma instrução é a unidade básica de execução em um processador e um thread é o objeto que executa uma instrução. Cada processo em execução tem pelo menos um thread.

UserModeTime

Tipo de dados: uint64

Tipo de acesso: Somente leitura

Qualificadores: Substituição ("UserModeTime"), Unidades ("100 nanossegundos")

Tempo no modo de usuário, em 100 unidades nanossegundos. Se essas informações não estiverem disponíveis, use um valor de 0 (zero).

Para obter mais informações sobre como usar valores uint64 em scripts, consulte Scripts no WMI.

VirtualSize

Tipo de dados: uint64

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Status do processo| SYSTEM_PROCESS_INFORMATION| VirtualSize"), DisplayName ("Uso do Espaço de Endereço Virtual"), Unidades ("bytes")

Tamanho atual do espaço de endereço virtual que um processo está usando, não a memória física ou virtual realmente usada pelo processo. O uso do espaço de endereço virtual não implica necessariamente o uso correspondente de páginas de memória de disco ou main. O espaço virtual é finito e, usando muito, o processo pode não ser capaz de carregar bibliotecas. Esse valor é consistente com o que você vê em Perfmon.exe.

Para obter mais informações sobre como usar valores uint64 em scripts, consulte Scripts no WMI.

WindowsVersion

Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Funções de processo e thread | GetProcessVersion"), DisplayName ("Versão do Windows")

Versão do Windows na qual o processo está em execução.

Exemplo: 4.0

WorkingSetSize

Tipo de dados: uint64

Tipo de acesso: Somente leitura

Qualificadores: DisplayName ("Working Set Size"), Units ("bytes")

Quantidade de memória em bytes que um processo precisa executar com eficiência para um sistema operacional que usa o gerenciamento de memória baseado em página. Se o sistema não tiver memória suficiente (menor que o tamanho do conjunto de trabalho), ocorrerá uma surra. Se o tamanho do conjunto de trabalho não for conhecido, use NULL ou 0 (zero). Se os dados do conjunto de trabalho forem fornecidos, você poderá monitorar as informações para entender os requisitos de memória variáveis de um processo.

Para obter mais informações sobre como usar valores uint64 em scripts, consulte Scripts no WMI.

Essa propriedade é herdada de CIM_Process.

WriteOperationCount

Tipo de dados: uint64

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread | SYSTEM_PROCESS_INFORMATION| WriteOperationCount"), DisplayName ("Write Operation Count")

Número de operações de gravação executadas.

Para obter mais informações sobre como usar valores uint64 em scripts, consulte Scripts no WMI.

WriteTransferCount

Tipo de dados: uint64

Tipo de acesso: Somente leitura

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread | SYSTEM_PROCESS_INFORMATION| WriteTransferCount"), DisplayName ("Write Transfer Count"), Units ("bytes")

Quantidade de dados gravados.

Para obter mais informações sobre como usar valores uint64 em scripts, consulte Scripts no WMI.

Comentários

A classe Win32_Process é derivada de CIM_Process. O processo de chamada que usa essa classe deve ter o privilégio SE_RESTORE_NAME no computador no qual o registro reside. Para obter mais informações, consulte Executando operações privilegiadas.

Visão geral

Os processos estão subjacentes a quase tudo o que acontece em um computador. Na verdade, a causa raiz da maioria dos problemas do computador pode ser rastreada para processos; por exemplo, muitos processos podem estar em execução em um computador (e lutando por um conjunto finito de recursos), ou um único processo pode estar usando mais do que sua parte de recursos. Esses fatores tornam importante manter um watch próximo nos processos em execução em um computador. O monitoramento de processos, a atividade main no gerenciamento de processos, permite determinar o que um computador realmente faz, quais aplicativos o computador executa e como esses aplicativos são afetados pelas alterações no ambiente de computação.

Monitorando um processo

O monitoramento de processos regularmente ajuda você a garantir que um computador seja executado com eficiência máxima e que ele execute suas tarefas nomeadas conforme o esperado. Por exemplo, monitorando processos, você pode ser notificado imediatamente de qualquer aplicativo que parou de responder e, em seguida, tomar medidas para encerrar esse processo. Além disso, o monitoramento de processos permite identificar problemas antes que eles ocorram. Por exemplo, verificando repetidamente a quantidade de memória usada por um processo, você pode identificar uma perda de memória. Em seguida, você pode interromper o processo antes que o aplicativo errante use toda a memória disponível e interrompa o computador.

O monitoramento de processos também ajuda a minimizar as interrupções causadas por interrupções planejadas para atualizações e manutenção. Por exemplo, verificando o status de um aplicativo de banco de dados em execução em computadores cliente, você pode determinar o impacto de colocar o banco de dados offline para atualizar o software.

Monitorando a disponibilidade do processo. Mede a porcentagem de tempo que um processo está disponível. A disponibilidade normalmente é monitorada pelo uso de uma investigação simples, que relata se o processo ainda está em execução. Mantendo o controle dos resultados de cada investigação, você pode calcular a disponibilidade do processo. Por exemplo, um processo que é investigado 100 vezes e responde em 95 dessas ocasiões tem uma disponibilidade de 95%. Esse tipo de monitoramento normalmente é reservado para bancos de dados, programas de email e outros aplicativos que devem ser executados o tempo todo. Não é apropriado para programas de processamento de palavras, planilhas ou outros aplicativos que são rotineiramente iniciados e interrompidos várias vezes por dia.

Você pode criar uma instância da classe Win32_ProcessStartup para configurar o processo.

Você pode monitorar o desempenho do processo com a classe Win32_PerfFormattedData_PerfProc_Process e um objeto de atualização WMI, como SWbemRefresher. Para obter mais informações, consulte Monitoramento de dados de desempenho.

Exemplos

O exemplo de código Listar as propriedades das classes WMI do PowerShell na Galeria do TechNet descreve a classe Win32_Process e gera os resultados no formato excel.

O processo Encerrar em execução em vários servidores encerra um processo em execução em um único ou vários computadores.

No tópico Exemplo: chamando um método de provedor , o código usa C++ para chamar Win32_Process para criar um processo.

A disponibilidade é a forma mais simples de monitoramento de processos: com essa abordagem, você simplesmente garante que o processo esteja em execução. Ao monitorar a disponibilidade do processo, você normalmente recupera uma lista de processos em execução em um computador e, em seguida, verifica se um processo específico ainda está ativo. Se o processo estiver ativo, ele será considerado disponível. Se o processo não estiver ativo, ele não estará disponível. O exemplo de VBScript a seguir monitora a disponibilidade do processo verificando a lista de processos em execução em um computador e emitindo uma notificação se o processo de Database.exe não for encontrado.

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

O exemplo de VBScript a seguir monitora a criação do processo usando um consumidor de evento temporário.

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

O VBScript a seguir monitora as informações de desempenho do processo.

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

O exemplo de código VBScript a seguir mostra como obter o proprietário de cada processo em um computador local. Você pode usar esse script para obter dados de um computador remoto, por exemplo, para determinar quais usuários têm processos que executam o servidor terminal, substituir o nome do computador remoto por "" na primeira linha. Você também deve ser um administrador no computador 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

O exemplo de código VBScript a seguir mostra como obter a sessão de logon associada a um processo em execução. Um processo deve estar em execução Notepad.exe antes do início do script. O exemplo localiza as instâncias de Win32_LogonSession associadas ao Win32_Process que representa Notepad.exe. Win32_SessionProcess é especificado como a classe de associação. Para obter mais informações, consulte Instrução ASSOCIATORS OF..

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 Valor
Cliente mínimo com suporte
Windows Vista
Servidor mínimo com suporte
Windows Server 2008
Namespace
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Confira também

CIM_Process

Classes do sistema operacional

Tarefas WMI: processos