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 „
" 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 |
|
Typbibliothek |
|
DLL |
|
CLSID |
CLSID_SWbemLocator |
IID |
IID_ISWbemLocator |