Partilhar via


Tarefas WMI: Software de computador

As tarefas WMI para software de computador obtêm informações como qual software é instalado pelo Microsoft Windows Installer (MSI) e versões de software. Para obter outros exemplos, consulte o TechNet ScriptCenter em https://www.microsoft.com/technet.

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, consulte Conectando-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 uma extensão .vbs, como filename.vbs. Certifique-se de que o editor de texto não adiciona uma extensão .txt ao arquivo.
  2. Abra uma janela de prompt de comando e navegue até o diretório onde você salvou o arquivo.
  3. Digite cscript filename.vbs no prompt de comando.
  4. Se não conseguir aceder a um registo de eventos, verifique se está a executar a partir de uma linha de comandos Elevados. Alguns Logs de Eventos, como o Log de Eventos de Segurança, podem estar protegidos por Controles de Acesso de Usuário (UAC).

Observação

Por padrão, o cscript exibe a saída de um script na janela do prompt de comando. Como os scripts WMI podem produzir grandes quantidades de saída, convém redirecionar a saída para um arquivo. Digite cscript filename.vbs > outfile.txt no prompt de comando para redirecionar a saída do script filename.vbs para outfile.txt.

Observação

A execução de uma consulta "Selecionar * de Win32_Product" pode resultar em um comportamento inesperado. Isso ocorre porque o provedor que suporta Win32_Product não está otimizado para consulta. Para obter mais informações, consulte KB Artigo 974524.

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

Como faço para... Classes ou métodos WMI
... desinstalar o software usando um script? Se o software foi instalado usando o Microsoft Windows Installer (MSI), use a classe WMI Win32_Product e o método Uninstall.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
    ("Select * from Win32_Product " _
        & "Where Name = 'Personnel database'")
For Each objSoftware in colSoftware
    objSoftware.Uninstall()
Next

PowerShell
              
              $colSoftware = Get-WmiObject -Class Win32_Product | Where-Object {$_.name -eq "Base de dados pessoal"} 

foreach ($colItem in $colSoftware) { $colItem.Uninstall() }

... inventariar todo o software instalado num computador com um script?

Se o software foi instalado usando o Microsoft Windows Installer (MSI), use a classe WMI Win32_Product.

VB
              
              strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") set colSoftware = objWMIService.ExecQuery _ ("Select * from Win32_Product") 

For Each objSoftware in colSoftware Wscript.Echo "Name: " & objSoftware.Name Wscript.Echo "Version: " & objSoftware.Version Next

PowerShell
              
              $colSoftware = Get-WmiObject -Class Win32_Product 

foreach ($colItem in $colSoftware) { "Name: " + $colItem.Name "Version: "+ $colItem.Version }

... determinar qual versão do Microsoft Office está instalada?

Use a classe Win32_Product e verifique o valor da propriedade Version.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery(_
    "Select * from Win32_Product " & _
    "Where IdentifyingNumber =" _
        & " '{90280409-6000-11D3-8CFE-0050048383C9}'")
For Each objItem in colSoftware
    Wscript.Echo "Name: " & objItem.Name
    Wscript.Echo "Version: " & objItem.Version
Next

PowerShell
              
              $colSoftware = Get-WmiObject -Class Win32_Product | Where-Object {$_. IdentifyingNumber -eq "{90280409-6000-11D3-8CFE-0050048383C9}"} 

foreach ($colItem in $colSoftware) { "Name: " + $colItem.Name "Version: " + $colItem.Version }

tarefas WMI para scripts e aplicativos

Exemplos de aplicativos WMI C++

TechNet ScriptCenter