Oggetto SWbemObjectSet
Un oggetto SWbemObjectSet è un insieme di oggetti SWbemObject . Per altre informazioni, vedere Accesso a una raccolta. Questo oggetto non può essere creato dalla chiamata CreateObject VBScript.
È possibile ottenere un oggetto SWbemObjectSet chiamando uno dei metodi seguenti o i relativi equivalenti asincroni:
- SWbemObject.Associators_
- SWbemObject.Instances_
- SWbemObject.References_
- SWbemObject.Subclasses_
- SWbemServices.AssociatorsOf
- SWbemServices.ExecQuery
- SWbemServices.InstancesOf
- SWbemServices.ReferencesTo
- SWbemServices.SubclassesOf
Nota
L'oggetto SWbemObjectSet non supporta i metodi di raccolta Add e Remove facoltativi.
Nota
Poiché il callback al sink potrebbe non essere restituito allo stesso livello di autenticazione richiesto dal client, è consigliabile usare la comunicazione semiincrona anziché la comunicazione asincrona. Per altre informazioni, vedere Chiamata di un metodo.
Membri
L'oggetto SWbemObjectSet dispone di questi tipi di membri:
Metodi
L'oggetto SWbemObjectSet dispone di questi metodi.
Metodo | Descrizione |
---|---|
Elemento | Recupera un oggetto SWbemObject dall'insieme. Si tratta del metodo predefinito dell'oggetto . |
Itemindex | Recupera l'oggetto SWbemObject associato all'indice specificato nell'insieme. |
Proprietà
L'oggetto SWbemObjectSet ha queste proprietà.
Proprietà | Tipo di accesso | Descrizione |
---|---|---|
Conteggio |
Sola lettura |
Numero di elementi nella raccolta. |
Sicurezza_ |
Sola lettura |
Usato per leggere o modificare le impostazioni di sicurezza. |
Commenti
Un oggetto SWbemObjectSet è un insieme di zero o più oggetti SWbemObject. Ogni SWbemObject in un oggetto SWbemObjectSet può rappresentare uno dei due elementi seguenti:
- Istanza di una risorsa gestita da WMI.
- Istanza di una definizione di classe.
L'uso più comune di questa classe in WMI è il valore restituito per una chiamata ExecQuery o InstancesOf , come descritto nell'esempio di codice seguente:
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colServices = objSWbemServices.ExecQuery("SELECT State FROM Win32_Service")
For Each objService In colServices
Wscript.Echo objService.Name, objService.State
Next
Per la maggior parte, l'unica operazione che verrà eseguita con un oggetto SWbemObjectSet è l'enumerazione di tutti gli oggetti contenuti nella raccolta stessa. Tuttavia, SWbemObjectSet include una proprietà Count che può essere utile negli script di amministrazione del sistema. Come suggerisce il nome, Count indica il numero di elementi nella raccolta. Ad esempio, questo script recupera una raccolta di tutti i servizi installati in un computer e quindi restituisce il numero totale di servizi trovati:
Per altre informazioni su come usare questa classe, vedere Enumerazione WMI.
Esempio
Nell'esempio di codice VBScript seguente viene illustrato come vengono modificate le raccolte SWbemObjectSet .
On Error Resume Next
Set Disks = GetObject("winmgmts:").InstancesOf ("CIM_LogicalDisk")
WScript.Echo "There are", Disks.Count, " Disks"
Set Disk = Disks("Win32_LogicalDisk.DeviceID=""C:""")
WScript.Echo Disk.Path_.Path
if Err <> 0 Then
WScript.Echo Err.Description
Err.Clear
End if
Nell'esempio di codice Perl seguente viene illustrato come vengono manipolate le raccolte SWbemObjectSet .
use strict;
use Win32::OLE;
my ($disks,$disk);
eval { $disks = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2")->
InstancesOf("CIM_LogicalDisk"); };
unless($@)
{
print "\nThere are ", $disks->{Count}, " Disks \n";
eval { $disk = $disks->Item("Win32_LogicalDisk.DeviceID=\"C:\""); };
unless($@)
{
print $disk->{Path_}->{Path}, "\n";
}
else
{
print STDERR Win32::OLE->LastError, "\n";
}
}
else
{
print STDERR Win32::OLE->LastError, "\n";
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows Vista |
Server minimo supportato |
Windows Server 2008 |
Intestazione |
|
Libreria dei tipi |
|
DLL |
|
CLSID |
CLSID_SWbemObjectSet |
IID |
IID_ISWbemObjectSet |