Eventos
19 nov, 23 - 21 nov, 23
Obtenga la ventaja competitiva que necesita con soluciones eficaces de inteligencia artificial y nube al asistir a Microsoft Ignite online.
Regístrese ahoraEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
El método ExecMethod_ del objeto SWbemObject ejecuta un método que exporta un proveedor de métodos.
Este método se pausa mientras se ejecuta el método que se reenvía al proveedor adecuado. Posteriormente, se devuelve la información y el estado. El proveedor, en lugar de WMI, implementa el método.
Para una explicación de esta sintaxis, consulte Convenciones de documentación para la API de scripting.
objOutParams = .ExecMethod_( _
ByVal strMethodName, _
[ ByVal objwbemInParams ], _
[ ByVal iFlags ], _
[ ByVal objwbemNamedValueSet ] _
)
strMethodName [entrada]
Necesario. Nombre del método para el objeto.
objwbemInParams [entrada, opcional]
Se trata de un objeto SWbemObject que contiene los parámetros de entrada para el método que se ejecuta. De forma predeterminada, este parámetro no está definido. Para más información, consulte Construir objetos InParameters y analizar objetos OutParameters.
iFlags [entrada, opcional]
Reservado y debe establecerse en 0 (cero) si se especifica.
objwbemNamedValueSet [entrada, opcional]
Normalmente no está definido. De lo contrario, se trata de un objeto SWbemNamedValueSet cuyos elementos representan la información de contexto que puede usar el proveedor que atiende la solicitud. Un proveedor que admita o necesite esa información debe documentar los nombres de valor reconocidos, el tipo de datos del valor, los valores permitidos y la semántica.
Si el método es correcto, se devuelve un objeto SWbemObject. El objeto devuelto contiene los parámetros de salida y el valor devuelto para el método que se está ejecutando.
Después de completar el método ExecMethod, el objeto Err puede contener uno de los códigos de error de la lista siguiente.
wbemErrFailed - 2147749889 (0x80041001)
Error no especificado.
wbemErrInvalidClass - 2147749904 (0x80041010)
La clase especificada no era válida.
wbemErrInvalidParameter: 2147749896 (0x80041008)
Un parámetro especificado no es válido.
wbemErrOutOfMemory: 2147749894 (0x80041006)
No hay suficiente memoria para completar la operación.
wbemErrInvalidMethod - 2147749934 (0x8004102E)
El método solicitado no estaba disponible.
wbemErrAccessDenied: 2147749891 (0x80041003)
El usuario actual no estaba autorizado para ejecutar el método.
Este método es similar a SWbemServices.ExecMethod, pero funciona directamente en el objeto cuyo método se va a ejecutar. Por ejemplo, el siguiente ejemplo de código llama al método del proveedor StartService en Win32_Service y usa el acceso directo.
oService = GetObject("winmgmts:Win32_Service=Alerter")
iStatus = oService.StartService()
Esta versión llama a SWbemObject.ExecMethod_ para ejecutar el método StartService.
oService = GetObject("winmgmts:Win32_Service=Alerter")
Set outParam = process.ExecMethod_("StartService")
Use SWbemObject.ExecMethod_ como alternativa al acceso directo para ejecutar un método de proveedor en los casos en los que no es posible ejecutar un método directamente. Por ejemplo, si el método tiene parámetros de salida, usaría el método SWbemObject.ExecMethod_ con un lenguaje de creación de scripts que no admita parámetros de salida. De lo contrario, el medio recomendado para invocar un método es usar el acceso directo.
En el ejemplo siguiente se muestra el método ExecMethod. El script crea un objeto Win32_Process que representa un proceso que ejecuta el Bloc de notas. Para más información sobre un script que ilustre las mismas operaciones realizadas de forma asincrónica, consulte SWbemObject.ExecMethodAsync_. Para un ejemplo de uso del acceso directo, consulte Creación del método de la clase Win32_Process. Para un ejemplo de la misma operación mediante un objeto SWbemServices, consulte SWbemServices.ExecMethod.
' Connect to WMI and obtain a Win32_Process object.
' This is also an SWbemObject object.
Set oProcess = GetObject("winmgmts: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 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_
' Specify the name of the process to be run.
oInParams.CommandLine = "Notepad.exe"
Set oOutParams = oProcess.ExecMethod_("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
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows Vista |
Servidor mínimo compatible |
Windows Server 2008 |
Encabezado |
|
Biblioteca de tipos |
|
Archivo DLL |
|
CLSID |
CLSID_SWbemObject |
IID |
IID_ISWbemObject |
Eventos
19 nov, 23 - 21 nov, 23
Obtenga la ventaja competitiva que necesita con soluciones eficaces de inteligencia artificial y nube al asistir a Microsoft Ignite online.
Regístrese ahora