Attività WMI: connessione al servizio WMI

Per ottenere dati da WMI, nel computer locale o da un computer remoto, è necessario connettersi al servizio WMI connettendosi a uno spazio dei nomi specifico. Nella maggior parte dei casi, usare la connessione moniker abbreviata o la connessione localizzatore . Per altri esempi, vedere TechNet ScriptCenter all'indirizzo https://www.microsoft.com/technet.

Le connessioni remote richiedono impostazioni appropriate per Windows Firewall e DCOM. Per altre informazioni, vedere Connessione a WMI in un computer remoto e Connessione tramite Windows Firewall. A partire da Windows Vista, il controllo dell'account utente può influire sull'accesso WMI. Per altre informazioni, vedere Controllo dell'account utente e WMI.

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 controlli di accesso utente.

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.

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

Ricerca per categorie Classi o metodi WMI
... connettersi a un computer remoto tramite WMI? Specificare uno dei valori seguenti come parte della stringa di connessione del moniker :
  • Nome computer NetBIOS, ad esempio "atl-dc-01"
  • Un nome di dominio completo, ad esempio "atl-dc-01.fabrikam.com"
  • Indirizzo IPv4, ad esempio "192.168.1.1"
  • A partire da Windows Vista, è possibile specificare un indirizzo IPv6 se il computer di destinazione e il computer da cui si effettua la connessione eseguono entrambi IPv6.
Per altre informazioni, vedere Connessione a WMI in un computer remoto e supporto IPv6 e IPv4 in 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
... eseguire uno script WMI con credenziali alternative?

Usare il metodo SWbemLocator.ConnectServer o IWbemLocator::ConnectServer in C++ e includere il nome utente e la password appropriati. Non è possibile modificare le credenziali durante la connessione al computer locale. Per altre informazioni, vedere Creazione di uno script WMI e Connessione a WMI in un computer 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

Attività WMI per script e applicazioni

Esempi di applicazioni WMI C++

TechNet ScriptCenter

`