SWbemServices. ExecMethod, méthode
La méthode ExecMethod de l’objet SWbemServices exécute une méthode qui est exportée par un fournisseur de méthode. Cette méthode bloque pendant l’exécution de la méthode qui est transférée au fournisseur approprié. Les informations et l’État sont ensuite renvoyés. Au lieu de WMI, le fournisseur implémente la méthode.
Cette méthode est appelée en mode synchrone. Pour plus d’informations, consultez appel d’une méthode.
Pour une explication de cette syntaxe, consultez conventions de document pour l’API de script.
Syntaxe
objOutParams = .ExecMethod( _
ByVal strObjectPath, _
ByVal strMethodName, _
[ ByVal objWbemInParams ], _
[ ByVal iFlags ], _
[ ByVal objWbemNamedValueSet ] _
)
Paramètres
-
strObjectPath
-
Obligatoire. Chaîne qui contient le chemin d’accès de l’objet pour lequel la méthode est exécutée. Pour plus d’informations, consultez Description de l’emplacement d’un objet WMI.
-
strMethodName
-
Obligatoire. Nom de la méthode pour l’objet.
-
objWbemInParams [ facultatif]
-
Objet SWbemObject qui contient les paramètres d’entrée de la méthode en cours d’exécution. Par défaut, ce paramètre n’est pas défini. Pour plus d’informations, consultez construction d’objets inparamètres et analyse d’objets de paramètres de paramètres.
-
IFlags [ facultatif]
-
Réservé. Cette valeur doit être zéro.
-
objWbemNamedValueSet [ facultatif]
-
En général, ce n’est pas défini. Dans le cas contraire, il s’agit d’un objet SWbemNamedValueSet dont les éléments représentent les informations de contexte qui peuvent être utilisées par le fournisseur qui traite la requête. Un fournisseur qui prend en charge ou requiert ces informations doit documenter les noms de valeur reconnus, le type de données de la valeur, les valeurs autorisées et la sémantique.
Valeur de retour
Si la méthode réussit, un objet SWbemObject est retourné. L’objet retourné contient les paramètres de sortie et la valeur de retour pour la méthode en cours d’exécution.
Codes d’erreur
Une fois la méthode ExecMethod terminée, l’objet Err peut contenir l’un des codes d’erreur répertoriés dans la liste suivante.
-
wbemErrFailed -2147749889 (0x80041001)
-
Erreur non spécifiée.
-
wbemErrInvalidClass -2147749904 (0x80041010)
-
La classe spécifiée n’est pas valide.
-
wbemErrInvalidParameter -2147749896 (0x80041008)
-
Un paramètre spécifié n’est pas valide.
-
wbemErrOutOfMemory -2147749894 (0x80041006)
-
Mémoire insuffisante pour terminer l’opération.
-
wbemErrInvalidMethod -2147749934 (0x8004102E)
-
La méthode demandée n’était pas disponible.
-
wbemErrAccessDenied -2147749891 (0x80041003)
-
L’utilisateur actuel n’a pas été autorisé à exécuter la méthode.
Notes
Utilisez SWbemServices. ExecMethod comme alternative à l’accès direct pour l’exécution d’une méthode de fournisseur dans les cas où il n’est pas possible d’exécuter une méthode directement. La méthode ExecMethod vous permet d’obtenir des paramètres de sortie, si le fournisseur les fournit, à l’aide d’un langage de script qui ne prend pas en charge les paramètres de sortie. Dans le cas contraire, les méthodes recommandées pour appeler une méthode consiste à utiliser l’accès direct. Pour plus d’informations, consultez manipulation d’informations sur les classes et les instances.
Par exemple, l’exemple de code suivant qui appelle la méthode du fournisseur StartService dans le _ service Win32 utilise l’accès direct.
oService = GetObject("winmgmts:Win32_Service=Alerter")
iStatus = oService.StartService()
Cet exemple appelle SWbemServices. ExecMethod pour exécuter la méthode StartService . Notez qu’un chemin d’accès à un objet est requis car SWbemServices. ExecMethod ne fonctionne pas déjà sur l’objet, contrairement à SWbemObject. ExecMethod.
Set WbemServices = GetObject("winmgmts:")
Set oService = GetObject("winmgmts:Win32_Service='Alerter'")
Set oPath = GetObject("winmgmts:Win32_Service='Alerter'").Path_
WbemServices.ExecMethod oPath, "StartService"
La méthode SWbemServices. ExecMethod requiert un chemin d’accès à l’objet. Si le script contient déjà un objet SWbemObject , utilisez la méthode SWbemObject. ExecMethod .
Exemples
L’exemple suivant illustre la méthode ExecMethod . le script crée un objet _ processus Win32 qui représente un processus en cours d’exécution Bloc-notes. Il illustre la configuration d’un objet Parameters et l’obtention des résultats d’un objet de paramètres de paramètres . Pour obtenir un script qui affiche les mêmes opérations exécutées de façon asynchrone, consultez SWbemServices. ExecMethodAsync. Pour obtenir un exemple d’utilisation de l’accès direct, consultez créer une méthode dans la classe _ processus Win32. Pour obtenir un exemple de la même opération à l’aide d’un SWbemObject, consultez 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
Configuration requise
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Windows Vista |
| Serveur minimal pris en charge |
Windows Server 2008 |
| En-tête |
|
| Bibliothèque de types |
|
| DLL |
|
| CLSID |
CLSID _ SWbemServices |
| IID |
IID _ ISWbemServices |