Get-WmiObject
Obtient des instances de classes WMI (Windows Management Instrumentation) ou des informations sur les classes disponibles.
Syntaxe
Get-WmiObject
[-Class] <String>
[[-Property] <String[]>]
[-Filter <String>]
[-Amended]
[-DirectRead]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[[-Class] <String>]
[-Recurse]
[-Amended]
[-List]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-DirectRead]
-Query <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Description
À compter de PowerShell 3.0, cette applet de commande a été remplacée par Get-CimInstance
.
L’applet de commande Get-WmiObject
obtient des instances de classes WMI ou des informations sur les classes WMI disponibles. Pour spécifier un ordinateur distant, utilisez le paramètre ComputerName. Si le paramètre List est spécifié, l’applet de commande obtient des informations sur les classes WMI disponibles dans un espace de noms spécifié. Si le paramètre requête est spécifié, l’applet de commande exécute une instruction WMI query language (WQL).
L’applet de commande Get-WmiObject
n’utilise pas la communication à distance Windows PowerShell pour effectuer des opérations à distance.
Vous pouvez utiliser le paramètre ComputerName de l’applet de commande Get-WmiObject
même si votre ordinateur ne répond pas à la configuration requise pour la communication à distance Windows PowerShell ou n’est pas configuré pour la communication à distance dans Windows PowerShell.
À compter de Windows PowerShell 3.0, la propriété __Server de l’objet retourné par Get-WmiObject
a un alias PSComputerName. Cela facilite l’intégration du nom de l’ordinateur source dans la sortie et les rapports.
Exemples
Exemple 1 : Obtenir des processus sur l’ordinateur local
Cet exemple obtient les processus sur l’ordinateur local.
Get-WmiObject -Class Win32_Process
Exemple 2 : Obtient les services sur un ordinateur distant
Cet exemple obtient les services sur un ordinateur distant. Le paramètre ComputerName spécifie l’adresse IP d’un ordinateur distant. Par défaut, le compte d’utilisateur actuel doit être membre de l'Administrateurs groupe sur l’ordinateur distant.
Get-WmiObject -Class Win32_Service -ComputerName 10.1.4.62
Exemple 3 : Obtenir des classes WMI dans l’espace de noms racine ou par défaut de l’ordinateur local
Cet exemple obtient les classes WMI dans l’espace de noms racine ou par défaut de l’ordinateur local.
Get-WmiObject -Namespace "root/default" -List
Exemple 4 : Obtenir un service nommé sur plusieurs ordinateurs
Cet exemple obtient le service WinRM sur les ordinateurs spécifiés par la valeur du paramètre ComputerName.
Get-WmiObject -Query "select * from win32_service where name='WinRM'" -ComputerName Server01, Server02 |
Format-List -Property PSComputerName, Name, ExitCode, Name, ProcessID, StartMode, State, Status
PSComputerName : SERVER01
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 844
StartMode : Auto
State : Running
Status : OK
PSComputerName : SERVER02
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 932
StartMode : Auto
State : Running
Status : OK
Un opérateur de pipeline (|
) envoie la sortie à l’applet de commande Format-List
, qui ajoute la propriété PSComputerName à la sortie par défaut.
PSComputerName est un alias de la propriété __Server des objets retournés par Get-WmiObject
. Cet alias a été introduit dans PowerShell 3.0.
Exemple 5 : Arrêter un service sur un ordinateur distant
Cet exemple montre comment arrêter le service WinRM sur un ordinateur distant.
Get-WmiObject
obtient l’instance de l’objet de service WinRM sur Server01. Ensuite, il appelle la méthode StopService de la classe WMI Win32_Service sur cet objet.
(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()
Cela équivaut à utiliser l’applet de commande Stop-Service
.
Exemple 6 : Obtenir le BIOS sur l’ordinateur local
Cet exemple obtient les informations bios de l’ordinateur local. Le paramètre Property de l’applet de commande Format-List
est utilisé pour afficher toutes les propriétés de l’objet retourné dans une liste. Par défaut, seul le sous-ensemble des propriétés définies dans le fichier de configuration Types.ps1xml
s’affiche.
Get-WmiObject -Class Win32_Bios | Format-List -Property *
Status : OK
Name : Phoenix ROM BIOS PLUS Version 1.10 A05
Caption : Phoenix ROM BIOS PLUS Version 1.10 A05
SMBIOSPresent : True
__GENUS : 2
__CLASS : Win32_BIOS
__SUPERCLASS : CIM_BIOSElement
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalElement,
__SERVER : Server01
__NAMESPACE : root\cimv2
__PATH : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
BiosCharacteristics : {7, 9, 10, 11...}
BIOSVersion : {DELL - 15, Phoenix ROM BIOS PLUS Version 1.10 A05}
BuildNumber :
CodeSet :
CurrentLanguage : en|US|iso8859-1
Description : Phoenix ROM BIOS PLUS Version 1.10 A05
IdentificationCode :
InstallableLanguages : 1
InstallDate :
LanguageEdition :
ListOfLanguages : {en|US|iso8859-1}
Manufacturer : Dell Inc.
OtherTargetOS :
PrimaryBIOS : True
ReleaseDate : 20101103000000.000000+000
SerialNumber : 8VDM9P1
SMBIOSBIOSVersion : A05
SMBIOSMajorVersion : 2
SMBIOSMinorVersion : 6
SoftwareElementID : Phoenix ROM BIOS PLUS Version 1.10 A05
SoftwareElementState : 3
TargetOperatingSystem : 0
Version : DELL - 15
Scope : System.Management.ManagementScope
Path : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
Options : System.Management.ObjectGetOptions
ClassPath : \\JUNE-PC\root\cimv2:Win32_BIOS
Properties : {BiosCharacteristics, BIOSVersion, BuildNumber, Caption...}
SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers : {dynamic, Locale, provider, UUID}
Site :
Container :
Exemple 7 : Obtenir les services sur un ordinateur distant
Cet exemple utilise le paramètre Credential de l’applet de commande Get-WmiObject
pour obtenir les services sur un ordinateur distant. La valeur du paramètre Credential est un nom de compte d’utilisateur. L’utilisateur est invité à entrer un mot de passe.
Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam
Note
Les informations d’identification ne peuvent pas être utilisées lors du ciblage de l’ordinateur local.
Paramètres
-Amended
Obtient ou définit une valeur qui indique si les objets retournés par WMI doivent contenir des informations modifiées. En règle générale, les informations modifiées sont des informations localisables, telles que des descriptions d’objets et de propriétés, qui sont attachées à l’objet 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 |
-AsJob
Exécute la commande en tant que travail en arrière-plan. Utilisez ce paramètre pour exécuter des commandes qui prennent 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 la fin du travail. Si Get-WmiObject
est utilisé avec le paramètre ComputerName, 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 nom Job
. Pour obtenir les résultats du travail, utilisez l’applet de commande Receive-Job
.
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 sont les suivantes :
-
-1
: inchangé -
0
: par défaut -
1
: Aucun (aucune authentification n’est effectuée.) -
2
: Connect (l’authentification est effectuée uniquement lorsque le client établit une relation avec l’application.) -
3
: d’appel (l’authentification est effectuée uniquement au début de chaque appel lorsque l’application reçoit la requête.) -
4
: paquets (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 NTLM ou Kerberos standard. Pour utiliser NTLM, définissez le paramètre d’autorité sur ntlmdomain:<DomainName>
, 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 le nom d’une classe WMI. Lorsque ce paramètre est utilisé, l’applet de commande récupère les instances de la classe WMI.
Type: | String |
Alias: | ClassName |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-ComputerName
Spécifie l’ordinateur cible pour l’opération de gestion. Entrez un nom de domaine complet (FQDN), un nom NetBIOS ou une adresse IP. Lorsque l’ordinateur distant se trouve dans un domaine différent de celui de l’ordinateur local, le nom de domaine complet est requis.
La valeur par défaut est l’ordinateur local. Pour spécifier l’ordinateur local, par exemple dans une liste de noms d’ordinateurs, utilisez localhost
, le nom de l’ordinateur local ou un point (.
).
Lorsque vous spécifiez un ordinateur distant, votre compte actuel ou celui que vous spécifiez avec le paramètre d’informations d’identification de doit disposer des autorisations appropriées pour accéder aux informations.
Ce paramètre ne s’appuie pas sur la communication à distance Windows PowerShell, qui utilise WS-Management. Vous pouvez utiliser le paramètre ComputerName de Get-WmiObject
même si votre ordinateur n’est pas configuré pour exécuter WS-Management 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 |
-Credential
Spécifie un compte d’utilisateur autorisé à effectuer 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
. Vous pouvez également entrer un objet PSCredential, tel qu’un objet retourné par l’applet de commande Get-Credential
. Lorsque vous tapez un nom d’utilisateur, vous êtes invité à entrer un mot de passe. Les informations d’identification ne peuvent pas être utilisées lors du ciblage de l’ordinateur local.
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 |
-DirectRead
Spécifie si l’accès direct au fournisseur WMI est demandé pour la classe spécifiée sans tenir compte de sa classe de base ou de ses classes dérivées.
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 |
-EnableAllPrivileges
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 |
-Filter
Spécifie une clause Where à utiliser comme filtre. Utilise la syntaxe du langage de requête WMI (WQL).
Important
N’incluez pas le mot clé Where dans la valeur du paramètre. Par exemple, les commandes suivantes retournent uniquement les disques logiques qui ont un DeviceID de c:
et des services qui ont le nom « WinRM » sans utiliser le mot clé Where.
Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "
Get-WmiObject win32_service -filter "name='WinRM'"
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 |
-Impersonation
Spécifie le niveau d’emprunt d’identité à utiliser.
Les valeurs acceptables pour ce paramètre sont les suivantes :
-
0
: par défaut . Lit le registre local pour le niveau d’emprunt d’identité par défaut. La valeur par défaut est généralement définie sur 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 |
-List
Obtient les noms des classes WMI dans l’espace de noms du référentiel WMI spécifié par le paramètre d’espace de noms.
Si vous spécifiez le paramètre liste de, mais pas le paramètre d’espace de noms, Get-WmiObject
utilise l’espace de noms Root\Cimv2 par défaut. Cette applet de commande n’utilise pas l’entrée d’espace de noms par défaut 'espace de noms par défaut dans la clé de Registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting
pour déterminer l’espace de noms par défaut.
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 |
-Locale
Spécifie les paramètres régionaux préférés pour les objets WMI. Entrez une valeur au format MS_<LCID>
.
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 |
-Namespace
Lorsqu’il est utilisé avec le paramètre classe, le paramètre espace de noms spécifie l’espace de noms du référentiel WMI où se trouve la classe WMI spécifiée. Lorsqu’il est utilisé avec le paramètre liste de, il spécifie l’espace de noms à partir duquel collecter les informations de classe WMI.
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 |
-Property
Spécifie les propriétés de classe WMI à partir de laquelle cette applet de commande obtient des informations. Entrez les noms des propriétés.
Type: | String[] |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Query
Exécute l’instruction WMI Query Language (WQL) spécifiée. Ce paramètre ne prend pas en charge les requêtes d’événements.
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 |
-Recurse
Recherche l’espace de noms actuel et tous les autres espaces de noms pour le nom de classe spécifié par le paramètre de classe.
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 |
-ThrottleLimit
Spécifie le nombre maximal d’opérations WMI qui peuvent être exécutées simultanément. Ce paramètre est valide uniquement lorsque le paramètre AsJob est utilisé dans la commande.
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 |
Entrées
None
Vous ne pouvez pas diriger l’entrée vers Get-WmiObject
.
Sorties
PSObject or System.Management.Automation.RemotingJob
Lorsque vous utilisez le paramètre AsJob, l’applet de commande retourne un objet de travail. Dans le cas contraire, l’objet qui Get-WmiObject
retourne dépend de la valeur du paramètre de classe.
Notes
Windows PowerShell inclut les alias suivants pour Get-WmiObject
:
gwmi
Pour accéder aux informations WMI sur un ordinateur distant, l’applet de commande doit s’exécuter sous un compte membre du groupe administrateurs local sur l’ordinateur distant. Ou bien, le contrôle d’accès par défaut sur l’espace de noms WMI du référentiel distant peut être modifié pour accorder des droits d’accès à d’autres comptes.
Seules certaines des propriétés de chaque classe WMI sont affichées par défaut. L’ensemble de propriétés affichées pour chaque classe WMI est spécifié dans le fichier de configuration Types.ps1xml
. Pour obtenir toutes les propriétés d’un objet WMI, utilisez les applets de commande Get-Member
ou Format-List
.