SWbemLocator-Objekt

Mit den Methoden des SWbemLocator-Objekts können Sie ein SWbemServices-Objekt abrufen, das eine Verbindung mit einem Namespace auf einem lokalen Computer oder auf einem Remotehostcomputer darstellt. Anschließend können Sie die Methoden des SWbemServices-Objekts verwenden, um auf WMI zuzugreifen. Dieses Objekt kann durch den VBScript-Aufruf CreateObject erstellt werden.

Member

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

Methoden

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

Methode BESCHREIBUNG
ConnectServer Stellt eine Verbindung mit WMI auf dem angegebenen Computer her.

Eigenschaften

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

Eigenschaft Zugriffstyp BESCHREIBUNG
Security_
Schreibgeschützt
Wird zum Lesen oder Ändern der Sicherheitseinstellungen verwendet.

Bemerkungen

Ganz oben im Modell der WMI-Skriptbibliotheksobjekte befindet sich das SWbemLocator-Objekt. SWbemLocator wird verwendet, um eine authentifizierte Verbindung mit einem WMI-Namespace herzustellen. Dies ist vergleichbar mit der Verwendung der VBScript-Funktion „GetObject“ und des WMI-Monikers „winmgmts:“ zur Einrichtung einer authentifizierten Verbindung mit WMI. SWbemLocator ist allerdings für zwei spezifische Skriptszenarien konzipiert, die nicht mit GetObject und dem WMI-Moniker möglich sind. Verwenden Sie SWbemLocator, wenn Folgendes erforderlich ist:

  • Angeben von Anmeldeinformationen in Form von Benutzername und Kennwort, um eine Verbindung mit WMI auf einem Remotecomputer herzustellen: Der mit der GetObject-Funktion verwendete WMI-Moniker enthält keinen Mechanismus zum Angeben von Anmeldeinformationen. Für die meisten WMI-Aktivitäten (einschließlich aller Aktivitäten, die auf Remotecomputern ausgeführt werden) sind Administratorrechte erforderlich. Wenn Sie sich üblicherweise mit einem regulären Benutzerkonto anstelle eines Administratorkontos anmelden, können Sie die meisten WMI-Aufgaben nur durchführen, wenn Sie das Skript unter alternativen Anmeldeinformationen ausführen.
  • Herstellen einer Verbindung mit WMI, wenn Sie ein WMI-Skript auf einer Webseite ausführen: Die GetObject-Funktion kann nicht verwendet werden, wenn Sie Skripts ausführen, die in eine HTML-Seite eingebettet sind, da Internet Explorer die Verwendung von GetObject aus Sicherheitsgründen nicht zulässt.

Darüber hinaus empfiehlt sich ggf. die Verwendung von SWbemLocator für die Verbindungsherstellung mit WMI, wenn die WMI-Verbindungszeichenfolge, die mit GetObject verwendet wird, für Sie verwirrend oder kompliziert ist.

Verwenden Sie zum Erstellen eines Verweises auf SWbemLocator nicht GetObject, sondern CreateObject. Um den Verweis zu erstellen, müssen Sie der CreateObject-Funktion den programmatischen SWbemLocator-Bezeichner (ProgID) „WbemScripting.SWbemLocator“ übergeben, wie in Zeile 2 des folgenden Skriptbeispiels gezeigt. Rufen Sie nach dem Abrufen eines Verweises auf ein SWbemLocator-Objekt die ConnectServer-Methode auf, um eine Verbindung mit WMI herzustellen und einen Verweis auf ein SWbemServices-Objekt abzurufen. Dies wird in Zeile 3 des folgenden Skripts veranschaulicht:

strComputer = "."
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("Win32_Service")
For Each objSWbemObject In colSWbemObjectSet
    Wscript.Echo "Name: " & objSWbemObject.Name
Next

Um ein Skript unter alternativen Anmeldeinformationen auszuführen, schließen Sie den Benutzernamen und das Kennwort als zusätzliche Parameter ein, die an ConnectServer übergeben werden. Das folgende Skript wird beispielsweise unter den Anmeldeinformationen eines Benutzers bzw. einer Benutzerin namens „kenmyer“ mit dem Kennwort „homerj“ ausgeführt:

strComputer = "atl-dc-01"
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer _
    (strComputer, "root\cimv2", "kenmyer", "homerj")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("Win32_Service")
For Each objSWbemObject In colSWbemObjectSet
    Wscript.Echo "Name: " & objSWbemObject.Name
Next

Sie können auch das Format „\“ verwenden, um einen Benutzernamen anzugeben. Beispiel:

" fabrikam\kenmyer"

Beispiele

Im folgenden PowerShell-Beispiel wird SWbemLocator verwendet, um eine Verbindung mit einem Server herzustellen:

$NameSpace = 'root\ccm'
$ComputerName = 'sccm.company.com'
$WbemLocator = New-Object -ComObject "WbemScripting.SWbemLocator"
$WbemServices = $WbemLocator.ConnectServer($ComputerName, $Namespace)
$WbemClasses = $WbemServices.SubclassesOf()
$WbemClasses

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_SWbemLocator
IID
IID_ISWbemLocator

Weitere Informationen

Objekte für die Skripterstellungs-API