Partager via


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\User01ou 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.