Tarefas do WMI: conectando-se ao serviço do WMI

Para obter dados do WMI, seja no computador local ou em um computador remoto, você deve se conectar ao serviço do WMI conectando-se a um namespace específico. Na maioria dos casos, use a conexão do moniker abreviada ou a conexão do Localizador. Para obter outros exemplos, consulte o TechNet ScriptCenter em https://www.microsoft.com/technet.

As conexões remotas exigem configurações adequadas para o Firewall do Windows e o DCOM. Para obter mais informações, confira Conectar-se à WMI em um computador remoto e Conectar-se por meio do Firewall do Windows. A partir do Windows Vista, o UAC (Controle de Conta de Usuário) pode afetar o acesso à WMI. Para obter mais informações, confira Controle de Conta do Usuário e o WMI.

Os exemplos de script mostrados neste tópico obtêm dados somente do computador local. Para obter mais informações sobre como usar o script para obter dados de computadores remotos, confira Como conectar-se ao WMI em um computador remoto.

O procedimento a seguir descreve como executar um script.

Para executar um script

  1. Copie o código e salve-o em um arquivo com a extensão .vbs, por exemplo, nomedoarquivo.vbs. Verifique se o editor de texto não adicionou a extensão .txt ao arquivo.
  2. Abra uma janela do prompt de comando e navegue até o diretório no qual deseja salvar o arquivo.
  3. Digite cscript nomedoarquivo.vbs no prompt de comando.
  4. Se você não conseguir acessar um log de eventos, verifique se está executando a partir de um prompt de comandos com privilégios elevados. Alguns logs de eventos, como o Log de Eventos de Segurança, podem ser protegidos por UAC (Controles de Conta de Usuário).

Observação

Por padrão, o cscript exibe a saída de um script na janela do prompt de comando. Como os scripts do WMI podem gerar uma grande quantidade de saída, pode ser interessante redirecionar essa saída para um arquivo. Digite cscript nomedoarquivo.vbs > arquivodesaida.txt no prompt de comando para redirecionar a saída do script nomedoarquivo.vbs para arquivodesaida.txt.

A tabela a seguir lista exemplos de script que podem ser usados para obter diversos tipos de dados do computador local.

Como fazer... Classes ou métodos do WMI
...conectar a um computador remoto usando o WMI? Especifique um dos seguintes como parte da cadeia de conexão do moniker :
  • Um nome de computador NetBIOS, como "atl-dc-01"
  • Um nome de domínio totalmente qualificado, como "atl-dc-01.fabrikam.com"
  • Um endereço IPv4, como "192.168.1.1"
  • A partir do Windows Vista, especifique um endereço IPv6 se o computador de destino e o computador do qual você está fazendo a conexão executar IPv6.
Para obter mais informações, consulte Conectando-se à WMI em um computador remoto e Suporte a IPv6 e IPv4 no WMI.
VB
strComputer = "atl-dc-01"
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 Name: " & objProcess.Name 
Next
PowerShell
strComputer = "atl-dc-01"
Get-WmiObject -Class Win32_Process -ComputerName $strComputer -Namespace "root\cimv2" | format-list -Property Name
... executar um script do WMI em credenciais alternativas?

Use o método SWbemLocator.ConnectServer ou IWbemLocator::ConnectServer em C++e inclua o nome de usuário e a senha apropriados. Não é possível alterar as credenciais ao se conectar ao computador local. Para obter mais informações, consulte Criar um script do WMI e Conectar-se à WMI em um computador remoto.

VB
strComputer = "atl-dc-01"
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer (strComputer, "root\cimv2", "fabrikam\administrator", "password")
Set colProcessList = objSWbemServices.ExecQuery("Select * From Win32_Process")
For Each objProcess in colProcessList
    Wscript.Echo "Process Name: " & objProcess.Name 
Next
PowerShell
$StrComputer = "atl-dc-01"
$strCredentials = "FABRIKAM\administrator"
Get-WmiObject -Class Win32_Process -ComputerName $strComputer -Namespace "root\cimv2" -credential $strCredentials `
   -Impersonation Impersonate | format-list -Property Name

Tarefas do WMI para scripts e aplicativos

Exemplos de aplicativo C++ do WMI

TechNet ScriptCenter

`