Objeto SWbemObjectSet
Un objeto SWbemObjectSet es una colección de objetos SWbemObject. Para más información, vea Acceso a una colección. Este objeto no se puede crear mediante la llamada CreateObject de VBScript.
Puede obtener un objeto SWbemObjectSet llamando a cualquiera de los métodos siguientes o sus equivalentes asincrónicos:
- SWbemObject.Associators_
- SWbemObject.Instances_
- SWbemObject.References_
- SWbemObject.Subclasses_
- SWbemServices.AssociatorsOf
- SWbemServices.ExecQuery
- SWbemServices.InstancesOf
- SWbemServices.ReferencesTo
- SWbemServices.SubclassesOf
Nota
El objeto SWbemObjectSet no admite los métodos opcionales de colección Add y Remove.
Nota
Como es posible que la devolución de llamada al receptor no se devuelva en el mismo nivel de autenticación que requiere el cliente, se recomienda usar la comunicación semisincrónica en lugar de la asincrónica. Para más información, vea Llamada a un método.
Miembros
El objeto SWbemObjectSet contiene estos tipos de miembros:
Métodos
El objeto SWbemObjectSet tiene estos métodos.
Método | Descripción |
---|---|
Elemento | Recupera un objeto SWbemObject de la colección. Este es el método predeterminado del objeto. |
ItemIndex | Recupera el objeto SWbemObject asociado al índice especificado en la colección. |
Propiedades
El objeto SWbemObjectSet tiene estas propiedades.
Propiedad | Tipo de acceso | Descripción |
---|---|---|
Count |
Solo lectura |
Número de elementos de la colección. |
Security_ |
Solo lectura |
Se usa para leer o cambiar la configuración de seguridad. |
Comentarios
Un objeto SWbemObjectSet es una colección de cero o más objetos SWbemObject. Cada SWbemObject de un objeto SWbemObjectSet puede representar una de estas dos cosas:
- Instancia de un recurso administrado por WMI.
- Instancia de una definición de clase.
El uso más común de esta clase en WMI es como valor devuelto para una llamada ExecQuery o InstancesOf, como se describe en el ejemplo de código siguiente:
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
En general, lo único que hará con SWbemObjectSet es enumerar todos los objetos contenidos en la propia colección. Sin embargo, SWbemObjectSet incluye una propiedad Count que puede ser útil en el scripting de administración del sistema. Count indica el número de elementos de la colección. Por ejemplo, este script recupera una colección de todos los servicios instalados en un equipo y, a continuación, devuelve el número total de servicios encontrados:
Para más información sobre cómo usar esta clase, vea Enumerar WMI.
Ejemplos
En el ejemplo de código de VBScript siguiente se muestra cómo se manipulan las colecciones 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
En el ejemplo de código de Perl siguiente se muestra cómo se manipulan las colecciones 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";
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows Vista |
Servidor mínimo compatible |
Windows Server 2008 |
Encabezado |
|
Biblioteca de tipos |
|
Archivo DLL |
|
CLSID |
CLSID_SWbemObjectSet |
IID |
IID_ISWbemObjectSet |