about_WMI_Cmdlets
Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0
Insira a introdução aqui.
TÓPICO
about_WMI_cmdlets
DESCRIÇÃO BREVE
Fornece informações de segundo plano sobre a WMI (Instrumentação de Gerenciamento do Windows) e o Windows PowerShell®.
DESCRIÇÃO LONGA
Este tópico fornece informações sobre a tecnologia WMI, os cmdlets da WMI para o Windows PowerShell, a comunicação remota baseada na WMI, os aceleradores da WMI e a solução de problemas da WMI. Este tópico também fornece links para obter mais informações sobre a WMI.
SOBRE A WMI
A WMI (Instrumentação de Gerenciamento do Windows) é a implementação pela Microsoft do WBEM (Web-Based Enterprise Management), que é uma iniciativa do setor para desenvolver uma tecnologia padrão para acessar informações de gerenciamento em um ambiente corporativo. A WMI usa o padrão CIM (Common Information Model) do setor para representar sistemas, aplicativos, redes, dispositivos e outros componentes gerenciados. O CIM é desenvolvido e mantido pela DMTF (Distributed Management Task Force). Você pode usar a WMI para gerenciar computadores locais e remotos. Por exemplo, você pode usar a WMI para fazer o seguinte:
Iniciar um processo em um computador remoto.
Reiniciar um computador remotamente.
Obter uma lista dos aplicativos que são instalados em um computador local ou remoto.
Consultar os logs de eventos do Windows em um computador local ou remoto.
CMDLETS DA WMI PARA WINDOWS POWERSHELL
O Windows PowerShell implementa a funcionalidade WMI por meio de um conjunto de cmdlets que está disponível no Windows PowerShell por padrão. Você pode usar esses cmdlets para concluir todas as tarefas necessárias para gerenciar computadores locais e remotos.
Os seguintes cmdlets da WMI estão incluídos.
Cmdlet Description
------------------ ----------------------------------------------
Get-WmiObject Gets instances of WMI classes or information
about the available classes.
Invoke-WmiMethod Calls WMI methods.
Register-WmiEvent Subscribes to a WMI event.
Remove-WmiObject Deletes WMI classes and instances.
Set-WmiInstance Creates or modifies instances of WMI classes.
COMANDOS DE EXEMPLO
O comando a seguir exibe as informações do BIOS do 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.
C:\PS> get-wmiobject -query "select * from win32_service where name='WinRM'" -computername server01, server01, server03
O seguinte comando mais complexo sai de todas as instâncias de um programa.
C:\PS> notepad.exe
C:\PS> $np = get-wmiobject -query "select * from win32_process where name='notepad.exe'"
C:\PS> $np | remove-wmiobject
COMUNICAÇÃO REMOTA BASEADA EM WMI
Embora a capacidade de gerenciar um sistema local por meio da WMI seja útil, são os recursos de comunicação remota que tornam a WMI uma poderosa ferramenta administrativa. A WMI usa o DCOM (Distributed Component Object Model) da Microsoft para se conectar aos sistemas e gerenciá-los. Talvez seja necessário configurar alguns sistemas para permitir conexões do DCOM. As configurações de firewall e as permissões bloqueadas do DCOM podem bloquear a capacidade da WMI de gerenciar os sistemas remotamente.
ACELERADORES DE TIPO DA WMI
O Windows PowerShell inclui aceleradores de tipo da WMI. Esses aceleradores de tipo da WMI (atalhos) permitem um acesso mais direto a um objeto de WMI que o oferecido por uma abordagem de acelerador não relacionado a tipo.
Os aceleradores de tipo a seguir são compatíveis com a WMI:
[WMISEARCHER]
Um atalho para pesquisar objetos de WMI.
[WMICLASS]
Um atalho para acessar as propriedades e métodos estáticos de uma classe.
[WMI]
Um atalho para obter uma só instância de uma classe.
[WMISEARCHER]
É um acelerador de tipo para um ManagementObjectSearcher. Pode ser necessário um construtor de cadeia de caracteres para criar um pesquisador para, em seguida, executar um comando GET() nele.
Por exemplo:
PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000'
PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto
handlecount __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. Ele tem um construtor de cadeia de caracteres que usa um caminho absoluto ou local da WMI para uma classe WMI e retorna um objeto que está 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. Ele tem um construtor de cadeia de caracteres que usa um caminho absoluto ou local da WMI para uma instância de WMI e retorna um objeto que está 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 DA 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 a WMI. Você pode receber 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 executar ping no computador remoto.
Problema 2:
Você não tem direitos de administrador local no computador remoto.
Para usar a WMI remotamente, você deve ter direitos de administrador local no computador remoto. Se não tiver, o acesso a esse computador será negado.
Para verificar a segurança do namespace:
a. Clique em Iniciar, clique com o botão direito do mouse em Meu computador com o botão direito e, em seguida, clique em Gerenciar.
b. Em Gerenciamento do computador, expanda Serviços e aplicativos, clique com o botão direito do mouse em Controle WMI e clique em Propriedades.
c. Na caixa de diálogo Propriedades de Controle WMI, clique na guia Segurança.
Problema 3:
Um firewall está bloqueando o acesso ao computador remoto.
A WMI usa os protocolos DCOM (Distributed COM) e RPC (Chamada de Procedimento Remoto) para atravessar a rede. Por padrão, muitos firewalls bloqueiam o tráfego de DCOM e RPC. Se seu firewall estiver bloqueando esses protocolos, sua conexão falhará. Por exemplo, o Firewall do Microsoft Windows XP Service Pack 2 está configurado para bloquear automaticamente todo tráfego de rede não solicitado, inclusive de DCOM e WMI. Em sua configuração padrão, o Firewall do Windows rejeita uma solicitação WMI recebida e você receberá a seguinte mensagem de erro:
"Remote server machine does not exist or is unavailable"
Mais informações sobre WMI
Para obter mais informações sobre a WMI, consulte os seguintes tópicos na biblioteca MSDN (Microsoft Developer Network):
"Sobre WMI":
https://go.microsoft.com/fwlink/?LinkId=142212
"Solução de problemas da WMI"
https://go.microsoft.com/fwlink/?LinkId=142213
E consulte "Segredos da Instrumentação de Gerenciamento do Windows – Solução de problemas e dicas" no Microsoft TechNet Script Center:
https://go.microsoft.com/fwlink/?LinkId=142214
CONSULTE TAMBÉM
Versão online: https://go.microsoft.com/fwlink/?LinkId=142219
Get-WmiObject
Invoke-WmiMethod
Register-WmiEvent
Remove-WmiObject
Set-WmiInstance