Share via


Tareas de WMI: Software de equipo

Las tareas de WMI para el software de equipo obtienen información como el software que instala Microsoft Windows Installer (MSI) y las versiones de software. Para obtener otros ejemplos, consulte TechNet ScriptCenter en https://www.microsoft.com/technet.

Los ejemplos de script que se muestran en este tema obtienen datos solo del equipo local. Para más información sobre cómo usar el script para obtener datos de equipos remotos, consulte Conexión a WMI en un equipo remoto.

En el procedimiento siguiente se describe cómo ejecutar un script.

Para ejecutar un script

  1. Copie el código y guárdelo en un archivo con una extensión.vbs, como filename.vbs. Asegúrese de que el editor de texto no agregue una extensión.txt al archivo.
  2. Abra un símbolo del sistema y navegue hasta el directorio donde haya almacenado el archivo.
  3. Escriba cscript filename.vbs en el símbolo del sistema.
  4. Si no puede acceder a un registro de eventos, compruebe si se ejecuta desde un símbolo del sistema con privilegios elevados. Algunos registros de eventos, como el registro de eventos de seguridad, pueden estar protegidos mediante controles de acceso de usuario (UAC).

Nota

De forma predeterminada, cscript muestra la salida de un script en la ventana del símbolo del sistema. Dado que los scripts de WMI pueden generar un número elevado de salidas, es posible que le interese redirigir la salida a un archivo. Escriba cscript NombreDeArchivo.vbs > outfile.txt en el símbolo del sistema para redirigir la salida del script NombreDeArchivo.vbs a outfile.txt.

Nota

La ejecución de una consulta "Select * from Win32_Product" puede dar lugar a un comportamiento inesperado. Esto se debe a que el proveedor que admite Win32_Product no está optimizado para consultas. Para más información, consulte el artículo de KB 974524.

Esta tabla contiene ejemplos de script que se pueden usar para obtener varios tipos de datos del equipo local.

Cómo... Clases o métodos de WMI
... desinstalar software con un script Si el software se ha instalado con Microsoft Windows Installer (MSI), use la clase WMI Win32_Product y el 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 datos personal"} 

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

... inventariar todo el software instalado en un equipo con un script

Si el software se ha instalado con Microsoft Windows Installer (MSI), use la clase 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 qué versión de Microsoft Office está instalada

Utilice la clase Win32_Product y compruebe el valor de la propiedad 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 }

Ejemplos

El ejemplo de código de PowerShell Script de información de equipo remoto de PowerShell utiliza una serie de clases de hardware y software, incluido Win32Product, para encontrar información sobre un equipo remoto mediante WMI y el Registro remoto.

Tareas de WMI para scripts y aplicaciones

Ejemplos de aplicaciones de C++ de WMI

TechNet ScriptCenter