SWbemServices.ExecMethod-Methode

Die ExecMethod-Methode des SWbemServices-Objekts führt eine Methode aus, die von einem Methodenanbieter exportiert wird. Diese Methode blockiert, während die Methode ausgeführt wird, die an den entsprechenden Anbieter weitergeleitet wird. Die Informationen und der Status werden dann zurückgegeben. Der Anbieter implementiert anstelle von WMI die -Methode.

Diese Methode wird im synchronen Modus aufgerufen. Weitere Informationen finden Sie unter Aufrufen einer Methode.

Eine Erläuterung dieser Syntax finden Sie unter Dokumentkonventionen für die Skripterstellungs-API.

Syntax

objOutParams = .ExecMethod( _
  ByVal strObjectPath, _
  ByVal strMethodName, _
  [ ByVal objWbemInParams ], _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ] _
)

Parameter

strObjectPath

Erforderlich. Zeichenfolge, die den Objektpfad des Objekts enthält, für das die Methode ausgeführt wird. Weitere Informationen finden Sie unter Beschreiben des Speicherorts eines WMI-Objekts.

strMethodName

Erforderlich. Name der Methode für das Objekt.

objWbemInParams [ Optional]

Ein SWbemObject-Objekt, das die Eingabeparameter für die ausgeführte Methode enthält. Dieser Parameter ist standardmäßig nicht definiert. Weitere Informationen finden Sie unter Erstellen von InParameters-Objekten und Analysieren von OutParameters-Objekten.

iFlags [ Optional]

Reserviert. Dieser Wert muss null (0) sein.

objWbemNamedValueSet [ Optional]

In der Regel ist dies nicht definiert. Andernfalls ist dies ein SWbemNamedValueSet-Objekt, dessen Elemente die Kontextinformationen darstellen, die vom Anbieter verwendet werden können, der die Anforderung wartet. Ein Anbieter, der solche Informationen unterstützt oder erfordert, muss die erkannten Wertnamen, den Datentyp des Werts, die zulässigen Werte und die Semantik dokumentieren.

Rückgabewert

Wenn die Methode erfolgreich ist, wird ein SWbemObject-Objekt zurückgegeben. Das zurückgegebene -Objekt enthält die out-Parameter und den Rückgabewert für die Methode, die ausgeführt wird.

Fehlercodes

Nach Abschluss der ExecMethod-Methode kann das Err-Objekt einen der Fehlercodes in der folgenden Liste enthalten.

wbemErrFailed – 2147749889 (0x80041001)

Unbekannter Fehler.

wbemErrInvalidClass – 2147749904 (0x80041010)

Die angegebene Klasse war ungültig.

wbemErrInvalidParameter – 2147749896 (0x80041008)

Ein angegebener Parameter ist ungültig.

wbemErrOutOfMemory – 2147749894 (0x80041006)

Nicht genügend Arbeitsspeicher, um den Vorgang abzuschließen.

wbemErrInvalidMethod – 2147749934 (0x8004102E)

Die angeforderte Methode war nicht verfügbar.

wbemErrAccessDenied – 2147749891 (0x80041003)

Der aktuelle Benutzer war nicht berechtigt, die -Methode auszuführen.

Hinweise

Verwenden Sie SWbemServices.ExecMethod als Alternative zum direkten Zugriff für die Ausführung einer Anbietermethode in Fällen, in denen es nicht möglich ist, eine Methode direkt auszuführen. Mit der ExecMethod-Methode können Sie Ausgabeparameter abrufen, wenn sie vom Anbieter bereitgestellt werden, mit einer Skriptsprache, die keine Ausgabeparameter unterstützt. Andernfalls wird empfohlen, einen direkten Zugriff zu verwenden, um eine Methode auf den Weg zu bringen. Weitere Informationen finden Sie unter Bearbeiten von Klassen- und Instanzinformationen.

Das folgende Codebeispiel, das die StartService-Anbietermethode in Win32 _ Service aufruft, verwendet beispielsweise direkten Zugriff.

oService = GetObject("winmgmts:Win32_Service=Alerter")
iStatus = oService.StartService()

In diesem Beispiel wird SWbemServices.ExecMethod aufgerufen, um die StartService-Methode auszuführen. Beachten Sie, dass ein Objektpfad erforderlich ist, da SWbemServices.ExecMethod im Gegensatz zu SWbemObject.ExecMethodnicht bereits für das Objekt funktioniert.

Set WbemServices = GetObject("winmgmts:")
Set oService = GetObject("winmgmts:Win32_Service='Alerter'")
Set oPath = GetObject("winmgmts:Win32_Service='Alerter'").Path_
WbemServices.ExecMethod oPath, "StartService"

Die SWbemServices.ExecMethod-Methode erfordert einen Objektpfad. Wenn das Skript bereits ein SWbemObject-Objekt enthält, verwenden Sie die SWbemObject.ExecMethod-Methode.

Beispiele

Das folgende Beispiel zeigt die ExecMethod-Methode. Das Skript erstellt ein _ Win32-Prozessobjekt, das einen Prozess darstellt, der Editor ausgeführt wird. Es zeigt die Einrichtung eines InParameters-Objekts und das Abrufen von Ergebnissen aus einem OutParameters-Objekt. Ein Skript, das die gleichen asynchron ausgeführten Vorgänge anzeigt, finden Sie unter SWbemServices.ExecMethodAsync. Ein Beispiel für die Verwendung des direkten Zugriffs finden Sie unter Create Method in Class Win32 _ Process. Ein Beispiel für den gleichen Vorgang mit einem SWbemObjectfinden Sie unter SWbemObject.ExecMethod.

' Connect to WMI
set Services = getobject("winmgmts:root\cimv2")

' Obtain the class definition object of a Win32_Process object.
Set oProcess = Services.Get("Win32_Process")

' Create the SWbemMethod.InParameters object
' to hold the input parameter needed
' for the Win32_Process.Create method call.
' The oProcess.Methods_("Create") call
' obtains obtains a class object that
' defines the correct input parameters
' for the Win32_Process.Create call.
' The InParameters object is an 
' SWbemObject object so SWbemObject.SpawnInstance_ 
'can be called to create it.

Set oInParams = _
    oProcess.Methods_("Create").InParameters.SpawnInstance_
oInParams.CommandLine = "Notepad.exe"

'Call SWbemServices.ExecMethod with the WMI path Win32_Process
Set oOutParams = _
    Services.ExecMethod( "Win32_Process", "Create", oInParams)

If oOutParams.ReturnValue = 0 Then
    wscript.echo "Create method executed successfully."
Else
' If the Create method failed to execute,
' an empty OutParameters object is returned. 
    If IsNull(oOutParams.ReturnValue) Then
        wscript.echo "Create method failed to execute."  
    Else
        wscript.echo "Create method executed" _
            & " but had error " _
            & "0x" & hex(oOutParams.ReturnValue)
    End If
End If

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 _ SWbemServices
IID
IID _ ISWbemServices

Weitere Informationen

Swbemservices

SWbemObject.ExecMethod_

Aufrufen einer Anbietermethode

Bearbeiten von Klassen- und Instanzinformationen