Freigeben über


SWbemObjectSet-Objekt

Ein SWbemObjectSet-Objekt ist eine Sammlung von SWbemObject-Objekten. Weitere Informationen finden Sie unter Zugreifen auf eine WMI-Sammlung. Dieses Objekt kann nicht durch den VBScript-Aufruf CreateObject erstellt werden.

Sie können ein SWbemObjectSet-Objekt abrufen, indem Sie eine der folgenden Methoden oder deren asynchrone Entsprechungen aufrufen:

Hinweis

Die optionalen Sammlungsmethoden Add und Remove werden vom SWbemObjectSet-Objekt nicht unterstützt.

Hinweis

Da der Rückruf an die Senke möglicherweise nicht auf der Authentifizierungsebene zurückgegeben wird, die der Client benötigt, empfiehlt es sich, anstelle der asynchronen Kommunikation eine halbsynchrone Kommunikation zu verwenden. Weitere Informationen finden Sie unter Aufrufen einer Methode.

Member

Das SWbemObjectSet-Objekt verfügt über folgende Arten von Membern:

Methoden

Das SWbemObjectSet-Objekt verfügt über folgende Methoden:

Methode BESCHREIBUNG
Element Ruft ein SWbemObject-Objekt aus der Sammlung ab. Dies ist die Standardmethode für das Objekt.
Itemindex Ruft das SWbemObject-Objekt ab, das dem angegebenen Index zugeordnet ist, in die Auflistung.

Eigenschaften

Das SWbemObjectSet-Objekt verfügt über folgende Eigenschaften:

Eigenschaft Zugriffstyp BESCHREIBUNG
Count
Schreibgeschützt
Die Anzahl der Elemente in der Auflistung.
Security_
Schreibgeschützt
Wird zum Lesen oder Ändern der Sicherheitseinstellungen verwendet.

Bemerkungen

Bei SWbemObjectSet handelt es sich um eine Sammlung von null oder mehr SWbemObject-Objekten. Jedes SWbemObject-Objekt in einer SWbemObjectSet-Instanz kann eines von zwei Dingen darstellen:

  • Eine Instanz einer von WMI verwalteten Ressource
  • Eine Instanz einer Klassendefinition

Diese Klasse wird in WMI in der Regel als Rückgabewert für einen ExecQuery- oder InstancesOf-Aufruf verwendet, wie im folgenden Codebeispiel zu sehen:

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

In den meisten Fällen wird SWbemObjectSet zum Aufzählen aller Objekte verwendet, die in der Sammlung selbst enthalten sind. SWbemObjectSet enthält jedoch eine Eigenschaft namens „Count“, die bei der Erstellung von Skripts für die Systemverwaltung hilfreich sein kann. Wie der Name schon sagt, gibt „Count“ die Anzahl von Elementen in der Sammlung an. Das folgende Skript ruft beispielsweise eine Sammlung aller auf einem Computer installierten Dienste ab und gibt dann die Gesamtzahl der gefundenen Dienste aus:

Weitere Informationen zur Verwendung dieser Klasse finden Sie unter WMI-Enumeration.

Beispiele

Das folgende VBScript-Codebeispiel veranschaulicht die Bearbeitung von SWbemObjectSet-Sammlungen:

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

Das folgende Perl-Codebeispiel veranschaulicht die Bearbeitung von SWbemObjectSet-Sammlungen:

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";
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
Windows Server 2008
Header
Wbemdisp.h
Typbibliothek
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObjectSet
IID
IID_ISWbemObjectSet

Weitere Informationen

Objekte für die Skripterstellungs-API