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:

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
Wbemdisp.h
Biblioteca de tipos
Wbemdisp.tlb
Archivo DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObjectSet
IID
IID_ISWbemObjectSet

Consulte también

Objetos de API de scripting