Erstellen von InParameters-Objekten

Ein InParameters-Objekt enthält die Parameterliste zum Aufrufen von Anbietermethoden bei Verwendung eines Aufrufs des ExecMethod-Typs. Die Methoden SWbemObject.ExecMethod_, SWbemObject.ExecMethodAsync_, SWbemServices.ExecMethod und SWbemServices.ExecMethodAsync erfordern alle ein InParameters-Objekt.

Im folgenden Verfahren wird das Erstellen eines InParameters-Objekts beschrieben.

So erstellen Sie den objwbemInParams-Parameter

  1. Stellen Sie eine Verbindung mit WMI her.

  2. Rufen Sie die Definition der WMI-Klasse ab, die die Methode definiert, die Sie ausführen möchten.

  3. Rufen Sie ein InParameters-Objekt ab, das für die WMI-Klassenmethode spezifisch ist, die Sie ausführen möchten.

    Set objInParam = objShare.Methods_("Create"). _
        inParameters.SpawnInstance_()
    
  4. Legen Sie die Eigenschaften der Instanz auf die geeigneten Werte fest. Achten Sie darauf, den Schlüsseleigenschaften in der WMI-Klasse, die die auszuführende Methode enthält, Werte zuzuweisen.

    Wenn Sie beispielsweise einen Eingabeparameter namens „myinputparam“ in einer Instanz von InParameters namens „INST“ auf den Wert „abc“ festlegen möchten, sähe der Code wie folgt aus.

    INST.Properties_.Add ("myinputparam").Value = "abc".
    
  5. Führen Sie die Methode aus, und rufen Sie den Rückgabestatus der Methode ab, die Sie ausführen.

Das folgende Codebeispiel veranschaulicht das Einrichten des InParameters-Objekts zum Erstellen eines neuen WMI-Objekts, das eine Freigabe darstellt. Weitere Informationen zum OutParameters-Objekt finden Sie unter Analysieren von OutParameters-Objekten. In diesem Beispiel wird ein erfolgreicher Rückgabewert (0) zurückgegeben, wenn am Speicherort „C:/Share“ ein Ordner mit dem Namen „Share“ vorhanden ist. In diesem Beispiel kann dieser Ordner für andere Benutzer freigegeben werden.

' Connect to WMI.
Set objServices = GetObject("winmgmts:root\cimv2")

' Obtain the definition of the WMI class that defines
' the method you want to execute.
Set objShare = objServices.Get("Win32_Share")

' Obtain an InParameters object specific
' to the WMI class method you want to execute.
Set objInParam = objShare.Methods_("Create"). _
    inParameters.SpawnInstance_()

' Set the properties of the instance to whatever
' values are appropriate.
objInParam.Properties_.Item("Access") = objSecDescriptor
objInParam.Properties_.Item("Description") = _
    "New share created by WMI script"
objInParam.Properties_.Item("Name") = "share"
objInParam.Properties_.Item("Path") = "C:\share"
objInParam.Properties_.Item("Type") = 0
'optional - default is 'max allowed'
objInParam.Properties_.Item("MaximumAllowed") = 100
'optional - default is no password
objInParam.Properties_.Item("Password") = "Password"

' Execute the method and obtain the return status. 
' The OutParameters object in objOutParams
' is created by the provider. 
Set objOutParams = objShare.ExecMethod_("Create", objInParam)    
wscript.echo objOutParams.ReturnValue