Attività WMI: Software computer

Le attività WMI per il software del computer ottengono informazioni quali il software installato dalle versioni di Microsoft Windows Installer (MSI) e software. Per altri esempi, vedere TechNet ScriptCenter all'indirizzo https://www.microsoft.com/technet.

Gli esempi di script illustrati in questo argomento ottengono dati solo dal computer locale. Per altre informazioni su come usare lo script per ottenere dati da computer remoti, vedere Connessione a WMI in un computer remoto.

La procedura seguente descrive come eseguire uno script.

Per eseguire uno script

  1. Copiare il codice e salvarlo in un file con estensione vbs, ad esempio filename.vbs. Assicurarsi che l'editor di testo non aggiunga un'estensione txt al file.
  2. Aprire una finestra del prompt dei comandi e passare alla directory in cui è stato salvato il file.
  3. Digitare cscript filename.vbs al prompt dei comandi.
  4. Se non è possibile accedere a un registro eventi, verificare se si esegue da un prompt dei comandi con privilegi elevati. Alcuni registri eventi, ad esempio il registro eventi di sicurezza, possono essere protetti da Controllo di accesso utente.Some Event Log, such as the Security Event Log, may be protected by User Controllo di accesso s (UAC).

Nota

Per impostazione predefinita, cscript visualizza l'output di uno script nella finestra del prompt dei comandi. Poiché gli script WMI possono produrre grandi quantità di output, è possibile reindirizzare l'output a un file. Digitare cscript filename.vbs > outfile.txt al prompt dei comandi per reindirizzare l'output dello script filename.vbs a outfile.txt.

Nota

L'esecuzione di una query "Select * from Win32_Product" può comportare un comportamento imprevisto. Ciò è dovuto al fatto che il provider che supporta Win32_Product non è ottimizzato per le query. Per altre informazioni, vedere l'articolo della Knowledge Base 974524.

Nella tabella seguente sono elencati esempi di script che possono essere usati per ottenere vari tipi di dati dal computer locale.

Ricerca per categorie Classi o metodi WMI
... disinstallare il software usando uno script? Se il software è stato installato con Microsoft Windows Installer (MSI), usare la classe WMI Win32_Product e il metodo 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 "Personnel database"} 

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

... inventariare tutto il software installato in un computer con uno script?

Se il software è stato installato con Microsoft Windows Installer (MSI) usa la 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 }

... determinare quale versione di Microsoft Office è installata?

Usare la classe Win32_Product e controllare il valore della proprietà 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 {$_. IdentificationNumber -eq "{90280409-6000-11D3-8CFE-0050048383C9}"} 

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

Attività WMI per script e applicazioni

Esempi di applicazioni WMI C++

TechNet ScriptCenter