Metodo SWbemServices.InstancesOf

Il metodo InstancesOf dell'oggetto SWbemServices crea un enumeratore che restituisce le istanze di una classe specificata in base ai criteri di selezione specificati dall'utente. Questo metodo implementa una query semplice. Le query più complesse possono richiedere l'uso di SWbemServices.ExecQuery.

Il metodo viene chiamato in modalità semisynchronous. Per altre informazioni, vedere Chiamata di un metodo.

Per una spiegazione di questa sintassi, vedere Document Conventions per l'API di scripting.

Sintassi

objWbemObjectSet = .InstancesOf( _
  ByVal strClass, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ] _
)

Parametri

strClass

Obbligatorio. Stringa contenente il nome della classe per cui si desiderano le istanze. Questo parametro non può essere vuoto.

iFlags [facoltativo]

Questo parametro determina la modalità di enumerazione dettagliata della chiamata e se la chiamata restituisce immediatamente. Il valore predefinito per questo parametro è wbemFlagReturnImmediately. Questo parametro può accettare i valori seguenti.

wbemFlagForwardOnly (32 (0x20))

Fa sì che venga restituito un enumeratore forward-only. Gli enumeratori forward-only sono in genere molto più veloci e usano meno memoria rispetto agli enumeratori convenzionali, ma non consentono chiamate a SWbemObject.Clone_.

wbemFlagBidirectional (0 (0x0))

Fa sì che WMI mantenga i puntatori agli oggetti dell'enumerazione fino a quando il client non rilascia l'enumeratore.

wbemFlagReturnImmediately (16 (0x10))

Valore predefinito per questo parametro. Questo flag fa sì che la chiamata restituisca immediatamente.

wbemFlagReturnWhenComplete (0 (0x0))

Determina il blocco di questa chiamata fino al completamento della query. Questo flag chiama il metodo in modalità sincrona.

wbemQueryFlagShallow (1 (0x1))

Forza l'enumerazione in modo da includere solo sottoclassi immediate della classe padre specificata.

wbemQueryFlagDeep (0 (0x0))

Valore predefinito per questo parametro. Questo valore impone all'enumerazione di includere tutte le classi nella gerarchia.

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Fa in modo che WMI restituisca i dati di modifica della classe con la definizione della classe di base. Per altre informazioni, vedere Localizzazione delle informazioni sulla classe WMI.

objWbemNamedValueSet [facoltativo]

In genere, questo non è definito. In caso contrario, si tratta di un oggetto SWbemNamedValueSet i cui elementi rappresentano le informazioni di contesto che possono essere utilizzate dal provider che sta servendo la richiesta. Un provider che supporta o richiede tali informazioni deve documentare i nomi dei valori riconosciuti, il tipo di dati del valore, i valori consentiti e la semantica.

Valore restituito

In caso di esito positivo, il metodo restituisce un oggetto SWbemObjectSet.

Codici di errore

Al termine del metodo InstancesOf , l'oggetto Err può contenere uno dei codici di errore nell'elenco seguente.

Nota

Un enumeratore restituito con zero elementi non è un errore.

wbemErrAccessDenied - 2147749891 (0x80041003)

L'utente corrente non dispone dell'autorizzazione per visualizzare le istanze della classe specificata.

wbemErrFailed - 2147749889 (0x80041001)

Si è verificato un errore non specificato.

wbemErrInvalidClass - 2147749904 (0x80041010)

La classe specificata non è valida.

wbemErrInvalidParameter - 2147749896 (0x80041008)

Un parametro specificato non è valido.

wbemErrOutOfMemory - 2147749894 (0x80041006)

Memoria insufficiente per completare l'operazione.

Commenti

Il metodo InstancesOf funziona solo per gli oggetti di classe.

Per impostazione predefinita, InstancesOf esegue un recupero approfondito. Ovvero InstancesOf recupera tutte le istanze della risorsa gestita identificata e tutte le istanze di tutte le sottoclassi definite sotto la classe di destinazione. Ad esempio, lo script seguente recupera tutte le risorse modellate da tutte le classi dinamiche definite sotto la classe astratta CIM_Service.

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("CIM_Service")
For Each objSWbemObject In colSWbemObjectSet
    Wscript.Echo "Object Path: " & objSWbemObject.Path_.Path
Next

Se si esegue questo script, verranno restituite informazioni. Tuttavia, queste informazioni non saranno limitate ai servizi installati in un computer. Includerà invece le informazioni di tutte le classi figlio di CIM_Service, tra cui Win32_SystemDriver e Win32_ApplicationService.

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Intestazione
Wbemdisp.h
Libreria dei tipi
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemServices
IID
IID_ISWbemServices

Vedi anche

SWbemServices

SWbemObjectSet