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 |
|
DLL |
|
Confira também