TÓPICO about_WMI_cmdlets DESCRIÇÃO RESUMIDA 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 com base em WMI, aceleradores WMI e solução de problemas de WMI. Este tópico também fornece links para outras informações sobre WMI. Sobre 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, rede, 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: -- Iniciar um processo em um computador remoto. -- Reiniciar um computador remotamente. -- Obter uma lista de aplicativos instalados em um computador local ou remoto. -- Consultar os logs de eventos do Windows em um computador local ou remoto. Os Cmdlets WMI para Windows PowerShell O Windows PowerShell implementa a funcionalidade de WMI por meio de um conjunto de cmdlets disponíveis no Windows PowerShell por padrão. Você pode usar esses cmdlets para concluir completamente as tarefas que são necessárias para gerenciar computadores local e remoto. Os seguintes cmdlets WMI estão inclusos. Cmdlet Descrição ------------------ ---------------------------------------------- Get-WmiObject Obtém instâncias das classes WMI ou informações sobre as classes disponíveis. Invoke-WmiMethod Chama 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 amostra Este comando exibe as informações do BIOS para o computador local. C:\PS> get-wmiobject win32_bios | format-list * Este comando exibe informações sobre os serviços do WinRM para três computadores remotos. C:\PS> get-wmiobject -query "select * from win32_service where name='WinRM'" -computername server01, server01, server03 Este 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 com base em WMI Embora a capacidade de gerenciar um sistema local por meio de WMI seja útil, são os recursos de comunicação remota que tornam a WMI uma ferramenta administrativa poderosa. A WMI usa o DCOM (Microsoft's Distributed Component Object Model) para se conectar e gerenciar sistemas. Talvez você queira configurar alguns sistemas para permitir conexões DCOM. As configurações de firewall e as permissões de DCOM bloqueadas podem impedir que a WMI gerencie remotamente os sistemas. Aceleradores de tipo da WMI O Windows PowerShell inclui aceleradores de tipo da WMI. Esses aceleradores de tipo da WMI (atalhos) permitem acesso mais direto a objetos WMI que uma metodologia de acelerador que não é de tipo permitiria. Os seguintes aceleradores de tipo têm suporte na WMI: [WMISEARCHER] - um atalho para procurar objetos WMI. [WMICLASS] - um atalho para acessar as propriedades e os métodos estáticos de uma classe. [WMI] - um atalho para obter uma única instância de uma classe. [WMISEARCHER] é um acelerador de tipo para ManagementObjectSearcher. Ele pode ter um construtor de cadeia de caracteres para criar um pesquisador que posteriormente pode ativar um GET(). 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 obtém um caminho de WMI local ou absoluto para uma classe de WMI e retorna um objeto que está vinculado 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 obtém um caminho de WMI local ou absoluto para uma instância de WMI e retorna um objeto que está vinculado 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 de WMI Os problemas a seguir são os mais comuns que podem ocorrer quando você tenta se conectar a um computador remoto. Problema 1: o computador remoto não está online. Se o computador estiver offline, você não poderá se conectar a ele usando a WMI. Você pode receber a seguinte mensagem de erro: "O computador de servidor remoto não existe ou não está disponível." 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 você não tiver, o acesso àquele computador será negado. Para verificar a segurança de namespace: a. Clique em Iniciar, clique com o botão direito do mouse em Meu Computador e 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, em seguida, 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 (Remote Procedure Call) para atravessar a rede. Por padrão, muitos firewalls bloqueiam o tráfego DCOM e RPC. Se o seu firewall estiver bloqueando esses protocolos, sua conexão falhará. Por exemplo, o Firewall do Windows in Microsoft Windows XP Service Pack 2 está configurado para bloquear automaticamente todo o tráfego de rede não solicitado, inclusive DCOM e WMI. Em sua configuração padrão, o Firewall do Windows rejeita a solicitação de WMI e você recebe a seguinte mensagem de erro: "O computador de servidor remoto não existe ou não está disponível." Para obter mais informações sobre WMI Para obter mais informações sobre WMI, consulte os tópicos a seguir na biblioteca do MSDN (Microsoft Developer Network): "Sobre WMI: https://go.microsoft.com/fwlink/?LinkId=142212 "WMI Troubleshooting" https://go.microsoft.com/fwlink/?LinkId=142213 E consulte "Secrets of Windows Management Instrumentation - Troubleshooting and Tips" 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