Invoke-WmiMethod
Appelle les méthodes WMI.
Syntaxe
Invoke-WmiMethod
[-Class] <String>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
-InputObject <ManagementObject>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
-Path <String>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
L’applet Invoke-WmiMethod
de commande appelle les méthodes des objets WMI (Windows Management Instrumentation).
Les nouvelles applets de commande CIM (Common Information Model), introduites dans Windows PowerShell 3.0, effectuent les mêmes tâches que les applets de commande WMI. Les applets de commande CIM sont conformes aux normes WS-Management (WSMan) et à la norme CIM, ce qui permet aux applets de commande d’utiliser les mêmes techniques pour gérer les ordinateurs Windows et les autres systèmes d’exploitation. Au lieu d’utiliser Invoke-WmiMethod
, envisagez d’utiliser Invoke-CimMethod.
Exemples
Exemple 1 : Répertorier l’ordre requis des paramètres de méthode WMI
Cette commande répertorie l’ordre requis des objets.
Get-WmiObject Win32_Volume |
Get-Member -MemberType Method -Name Format |
Select-Object -ExpandProperty Definition
System.Management.ManagementBaseObject Format(System.String FileSystem, System.Boolean QuickFormat,
System.UInt32 ClusterSize, System.String Label, System.Boolean EnableCompression,
System.UInt32 Version)
L’appel de WMI dans PowerShell 3.0 diffère des autres méthodes et nécessite que les valeurs d’objets soient entrées dans un ordre spécifique.
Exemple 2 : Démarrer une instance d’une application
([Wmiclass]'Win32_Process').Create.OverloadDefinitions
System.Management.ManagementBaseObject Create(System.String CommandLine, System.String CurrentDirectory,
System.Management.ManagementObject#Win32_ProcessStartup ProcessStartupInformation)
Invoke-WmiMethod -Path Win32_Process -Name Create -ArgumentList C:\Windows\system32\notepad.exe
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 2
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ProcessId : 11312
ReturnValue : 0
PSComputerName :
Cette commande démarre une instance du Bloc-notes en appelant la Create
méthode de la classe Win32_Process .
La propriété ReturnValue est remplie avec un 0
, et la propriété ProcessId est remplie avec un entier (numéro d’ID de processus suivant) si la commande est terminée.
Exemple 3 : Renommer un fichier
$invokeWmiMethodSplat = @{
Path = "CIM_DataFile.Name='C:\scripts\test.txt'"
Name = 'Rename'
ArgumentList = 'C:\scripts\test_bu.txt'
}
Invoke-WmiMethod @invokeWmiMethodSplat
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ReturnValue : 0
Cette commande renomme un fichier. Il utilise le paramètre Path pour référencer une instance de la classe CIM_DataFile . Elle applique ensuite la méthode Rename à cette instance particulière.
La propriété ReturnValue est remplie avec une 0
commande si la commande est terminée.
Exemple 4 : Passage d’un tableau de valeurs à l’aide de « -ArgumentList »
Exemple utilisant un tableau d’objets $binSD
suivi d’une $null
valeur.
$acl = Get-Acl test.txt
$binSD = $acl.GetSecurityDescriptorBinaryForm()
$invokeWmiMethodSplat = @{
Class = 'Win32_SecurityDescriptorHelper'
Name = 'BinarySDToSDDL'
ArgumentList = $binSD, $null
}
Invoke-WmiMethod @invokeWmiMethodSplat
Paramètres
-ArgumentList
Spécifie les paramètres à passer à la méthode appelée. La valeur de ce paramètre doit être un tableau d’objets, et elles doivent apparaître dans l’ordre requis par la méthode appelée. L’applet Invoke-CimCommand
de commande n’a pas ces limitations.
Pour déterminer l’ordre dans lequel répertorier ces objets, exécutez la GetMethodParameters()
méthode sur la classe WMI, comme illustré dans l’exemple 1, près de la fin de cette rubrique.
Important
Si la première valeur est un tableau qui contient plusieurs éléments, une deuxième valeur $null
est requise. Sinon, la commande génère une erreur, telle que Unable to cast object of type 'System.Byte' to type 'System.Array'.
. Consultez l’exemple 4 ci-dessus.
Type: | Object[] |
Alias: | Args |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-AsJob
Indique que cette applet de commande exécute la commande en tant que travail en arrière-plan. Utilisez ce paramètre pour exécuter des commandes dont l'exécution nécessite beaucoup de temps.
Lorsque vous utilisez le paramètre AsJob , la commande retourne un objet qui représente le travail en arrière-plan, puis affiche l’invite de commandes. Vous pouvez continuer à travailler dans la session pendant l'exécution de la tâche. Si Invoke-WmiMethod
elle est utilisée sur un ordinateur distant, le travail est créé sur l’ordinateur local et les résultats des ordinateurs distants sont automatiquement retournés à l’ordinateur local. Pour gérer le travail, utilisez les applets de commande qui contiennent le Job
nom (applets de commande de tâche). Pour obtenir les résultats du travail, utilisez l’applet Receive-Job
de commande.
pour utiliser ce paramètre avec des ordinateurs distants, les ordinateurs locaux et distants doivent être configurés pour l'accès distant. En outre, vous devez démarrer Windows PowerShell à l’aide de l’option Exécuter en tant qu’administrateur dans Windows Vista et versions ultérieures de Windows. Pour plus d’informations, consultez about_Remote_Requirements.
Pour plus d’informations sur les travaux en arrière-plan Windows PowerShell, consultez about_Jobs et about_Remote_Jobs.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Authentication
Spécifie le niveau d’authentification à utiliser avec la connexion WMI. Les valeurs valides pour ce paramètre sont :
-1
: inchangé0
: valeur par défaut1
: Aucun (aucune authentification en cours d’exécution.)2
: Se connecter (l’authentification est effectuée uniquement lorsque le client établit une relation avec l’application.)3
: Appel (l’authentification est effectuée uniquement au début de chaque appel lorsque l’application reçoit la demande.)4
: Paquet (l’authentification est effectuée sur toutes les données reçues du client.)5
: PacketIntegrity (toutes les données transférées entre le client et l’application sont authentifiées et vérifiées.)6
: PacketPrivacy (les propriétés des autres niveaux d’authentification sont utilisées et toutes les données sont chiffrées.)
Type: | AuthenticationLevel |
Valeurs acceptées: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Authority
Spécifie l'autorité à utiliser pour authentifier la connexion WMI. Vous pouvez spécifier l’authentification Standard windows NT LAN Manager (NTLM) ou Kerberos. Pour utiliser NTLM, définissez le paramètre ntlmdomain:<DomainName>
d’autorité sur , où <DomainName>
identifie un nom de domaine NTLM valide. Pour utiliser Kerberos, spécifiez kerberos:<DomainName>\<ServerName>
. Vous ne pouvez pas inclure le paramètre d'autorité lorsque vous vous connectez à l'ordinateur local.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Class
Spécifie la classe WMI qui contient une méthode statique à appeler.
Type: | String |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-ComputerName
Spécifie, sous la forme d’un tableau de chaînes, les ordinateurs sur utilisant cette applet de commande. La valeur par défaut est l'ordinateur local.
Tapez le nom NetBIOS, une adresse IP ou un nom de domaine complet d'un ou de plusieurs ordinateurs. Pour spécifier l’ordinateur local, tapez le nom de l’ordinateur, un point (.
) ou localhost
.
Ce paramètre ne s'appuie pas sur la communication à distance Windows PowerShell. Vous pouvez utiliser le paramètre ComputerName même si votre ordinateur n’est pas configuré pour exécuter des commandes distantes.
Type: | String[] |
Alias: | Cn |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Confirm
Vous demande une confirmation avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Credential
Spécifie un compte d’utilisateur qui a l’autorisation d’exécuter cette action. La valeur par défaut est l’utilisateur actuel. Tapez un nom d’utilisateur, tel que User01
, Domain01\User01
ou User@Contoso.com
. Ou entrez un objet PSCredential , tel qu’un objet retourné par l’applet Get-Credential
de commande. Lorsque vous tapez un nom d’utilisateur, vous êtes invité à entrer un mot de passe.
Type: | PSCredential |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-EnableAllPrivileges
Indique que cette applet de commande active tous les privilèges de l’utilisateur actuel avant que la commande effectue l’appel WMI.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Impersonation
Spécifie le niveau d'emprunt d'identité à utiliser. Les valeurs valides pour ce paramètre sont :
0
: Valeur par défaut (lit le registre local pour le niveau d’emprunt d’identité par défaut , qui est généralement défini sur3
: Emprunt d’identité.)1
: Anonyme (masque les informations d’identification de l’appelant.)2
: Identifier (permet aux objets d’interroger les informations d’identification de l’appelant.)3
: Emprunt d’identité (permet aux objets d’utiliser les informations d’identification de l’appelant.)4
: Délégué (permet aux objets d’autoriser d’autres objets à utiliser les informations d’identification de l’appelant.)
Type: | ImpersonationLevel |
Valeurs acceptées: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-InputObject
Spécifie un objet ManagementObject à utiliser comme entrée. Lorsque ce paramètre est utilisé, tous les autres paramètres, à l’exception des paramètres Indicateur et Argument , sont ignorés.
Type: | ManagementObject |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Locale
Spécifie les paramètres régionaux par défaut pour les objets WMI. Spécifiez la valeur du paramètre Locale en tant que tableau au format dans l’ordre MS_<LCID>
préféré.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Name
Spécifie le nom de la méthode à appeler. Ce paramètre est obligatoire et ne peut ni avoir la valeur Null ni être vide.
Type: | String |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Namespace
Lorsqu’il est utilisé avec le paramètre Class , ce paramètre spécifie l’espace de noms du référentiel WMI où se trouve la classe ou l’objet WMI référencé.
Type: | String |
Alias: | NS |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Path
Spécifie le chemin d’accès de l’objet WMI d’une classe WMI, ou spécifie le chemin d’accès de l’objet WMI d’une instance d’une classe WMI. La classe ou l’instance que vous spécifiez doivent contenir la méthode spécifiée dans le paramètre Name .
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-ThrottleLimit
Spécifie une valeur de limitation pour le nombre d’opérations WMI qui peuvent être exécutées simultanément. Ce paramètre est utilisé avec le paramètre AsJob . La limite d'accélération s'applique uniquement à la commande actuelle, et non à la session ou à l'ordinateur.
Type: | Int32 |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-WhatIf
Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Alias: | wi |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
None
Cette applet de commande n’accepte aucune entrée.
Sorties
None
Cette applet de commande ne génère aucune sortie.
Notes
Windows PowerShell inclut les alias suivants pour Invoke-WmiMethod
:
iwmi