about_WMI_Cmdlets
Descrição breve
Fornece informações de segundo plano sobre WMI (Instrumentação de Gerenciamento do Windows) e Windows PowerShell.
Descrição longa
Este tópico fornece informações sobre a tecnologia WMI, os cmdlets WMI para Windows PowerShell, comunicação remota baseada em WMI, aceleradores WMI e solução de problemas WMI. Este tópico também fornece links para outras informações sobre WMI.
SOBRE O WMI
A WMI (Instrumentação de Gerenciamento do Windows) é a implementação do WBEM (Gerenciamento Corporativo Baseado na Web) da Microsoft, que é uma iniciativa de mercado para desenvolver uma tecnologia padrão para acessar informações de gerenciamento em um ambiente corporativo. A WMI usa o padrão de mercado CIM (Modelo de Informação Comum) para representar sistemas, aplicativos, redes, dispositivos e outros componentes gerenciados. O CIM é desenvolvido e mantido pela DMTF (Distributed Management Task Force). Você pode usar o WMI para gerenciar computadores locais e remotos. Por exemplo, você pode usar o WMI para fazer o seguinte:
- Inicie um processo em um computador remoto.
- Reinicie um computador remotamente.
- Obtenha uma lista dos aplicativos instalados em um computador local ou remoto.
- Consulte os logs de eventos do Windows em um computador local ou remoto.
OS CMDLETS WMI PARA WINDOWS POWERSHELL
O Windows PowerShell implementa a funcionalidade WMI por meio de um conjunto de cmdlets que estão disponíveis no Windows PowerShell por padrão. Você pode usar esses cmdlets para concluir as tarefas de ponta a ponta necessárias para gerenciar computadores locais e remotos.
Os cmdlets WMI a seguir estão incluídos.
Cmdlet | Descrição |
---|---|
Get-WmiObject | Obtém instâncias de classes ou informações WMI |
sobre as classes disponíveis. | |
Invoke-WmiMethod | Chama os métodos WMI. |
Register-WmiEvent | Assina um evento WMI. |
Remove-WmiObject | Exclui classes e instâncias WMI. |
Set-WmiInstance | Cria ou modifica instâncias de classes WMI. |
COMANDOS DE EXEMPLO
O comando a seguir exibe as informações do BIOS para o computador local.
C:\PS> get-wmiobject win32_bios | format-list *
O comando a seguir exibe informações sobre o serviço WinRM para três computadores remotos.
$wql = "select * from win32_service where name='WinRM'"
get-wmiobject -query $wql -computername server01, server01, server03
O comando mais complexo a seguir sai de todas as instâncias de um programa.
C:\PS> notepad.exe
C:\PS> $wql = "select * from win32_process where name='notepad.exe'"
C:\PS> $np = get-wmiobject -query $wql
C:\PS> $np | remove-wmiobject
COMUNICAÇÃO REMOTA BASEADA EM WMI
Embora a capacidade de gerenciar um sistema local por meio do WMI seja útil, são os recursos de comunicação remota que tornam o WMI uma ferramenta administrativa poderosa. O WMI usa o DCOM (Distributed Component Object Model) da Microsoft para se conectar e gerenciar sistemas. Talvez seja necessário configurar alguns sistemas para permitir conexões DCOM. As configurações de firewall e as permissões DCOM bloqueadas podem bloquear a capacidade do WMI de gerenciar sistemas remotamente.
ACELERADORES DO TIPO WMI
O Windows PowerShell inclui aceleradores do tipo WMI. Esses aceleradores de tipo WMI (atalhos) permitem acesso mais direto a objetos WMI do que uma abordagem de acelerador de tipo não permitiria.
Os seguintes aceleradores de tipo têm suporte com o WMI:
[WMISEARCHER] - Um atalho para pesquisar objetos WMI.
[WMICLASS] – Um atalho para acessar as propriedades estáticas e os métodos de uma classe.
[WMI] - Um atalho para obter uma única instância de uma classe.
[WMISEARCHER] é um acelerador de tipo para um ManagementObjectSearcher. Pode ser necessário um construtor de string para criar um pesquisador no qual você pode fazer um GET().
Por exemplo:
PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000'
PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto
count __PATH name
----- ------ ----
1105 \\SERVER01\root\cimv2:Win32_Process.Handle="3724" PowerShell...
1132 \\SERVER01\root\cimv2:Win32_Process.Handle="1388" winlogon.exe
1495 \\SERVER01\root\cimv2:Win32_Process.Handle="2852" iexplore.exe
1699 \\SERVER01\root\cimv2:Win32_Process.Handle="1204" OUTLOOK.EXE
1719 \\SERVER01\root\cimv2:Win32_Process.Handle="1912" iexplore.exe
2579 \\SERVER01\root\cimv2:Win32_Process.Handle="1768" svchost.exe
[WMICLASS] é um acelerador de tipo para ManagementClass. Isso tem um construtor de cadeia de caracteres que usa um caminho WMI local ou absoluto para uma classe WMI e retorna um objeto associado a essa classe.
Por exemplo:
PS> $c = [WMICLASS]"root\cimv2:WIn32_Process"
PS> $c |fl *
Name : Win32_Process
__GENUS : 1
__CLASS : Win32_Process
__SUPERCLASS : CIM_Process
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_Process
__PROPERTY_COUNT : 45
__DERIVATION : {CIM_Process, CIM_LogicalElement,
CIM_ManagedSystemElement}
__SERVER : SERVER01
__NAMESPACE : ROOT\cimv2
__PATH : \\SERVER01\ROOT\cimv2:Win32_Process
[WMI] é um acelerador de tipo para ManagementObject. Isso tem um construtor de cadeia de caracteres que usa um caminho WMI local ou absoluto para uma instância WMI e retorna um objeto associado a essa instância.
Por exemplo:
PS> $p = [WMI]'\\SERVER01\root\cimv2:Win32_Process.Handle="1204"'
PS> $p.Name
OUTLOOK.EXE
SOLUÇÃO DE PROBLEMAS DO WMI
Os problemas a seguir são os problemas mais comuns que podem ocorrer quando você tenta se conectar a um computador remoto.
Problema 1: O computador remoto não está online.
Se um computador estiver offline, você não poderá se conectar a ele usando o WMI. Você pode ver a seguinte mensagem de erro:
Remote server machine does not exist or is unavailable
Se você receber essa mensagem de erro, verifique se o computador está online. Tente fazer ping no computador remoto.
Problema 2: Você não tem direitos de administrador local no computador remoto.
Para usar o WMI remotamente, você deve ter direitos de administrador local no computador remoto. Caso contrário, o acesso a esse computador será negado.
Para verificar a segurança do namespace:
- Clique em Iniciar, clique com o botão direito do mouse em Meu Computador e clique em Gerenciar.
- Em Gerenciamento do Computador, expanda Serviços e Aplicativos, clique com o botão direito do mouse em Controle WMI e clique em Propriedades.
- Na caixa de diálogo Propriedades do Controle WMI , clique na guia Segurança .
Problema 3: Um firewall está bloqueando o acesso ao computador remoto.
O WMI usa os protocolos DCOM (Distributed COM) e RPC (Remote Procedure Call) para atravessar a rede. Por padrão, muitos firewalls bloqueiam o tráfego DCOM e RPC. Se o firewall estiver bloqueando esses protocolos, a conexão falhará. Por exemplo, o Firewall do Windows no Microsoft Windows XP Service Pack 2 está configurado para bloquear automaticamente todo o tráfego de rede não solicitado, incluindo DCOM e WMI. Em sua configuração padrão, o Firewall do Windows rejeita uma solicitação WMI de entrada e você recebe a seguinte mensagem de erro:
Remote server machine does not exist or is unavailable