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 Get-WmiObject de commande 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 de requête est spécifié, l’applet de commande exécute une instruction WMI (WQL).

L’applet Get-WmiObject de commande n’utilise pas la communication à distance Windows PowerShell pour effectuer des opérations à distance. Vous pouvez utiliser le paramètre ComputerName de l’applet Get-WmiObject de commande 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 qui Get-WmiObject retourne a un alias PSComputerName . Vous pouvez ainsi inclure plus facilement le nom de l'ordinateur source dans la sortie et dans 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 du groupe Administrateurs 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 Format-List de commande, qui ajoute la propriété PSComputerName à la sortie par défaut. PSComputerName est un alias de la propriété __Server des objets qui Get-WmiObject retournent. 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 Stop-Service commande.

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 Format-List de commande 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 Types.ps1xml fichier de configuration 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 Get-WmiObject de commande 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

Remarque

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 général, les informations modifiées sont des informations localisables jointes à l'objet WMI (descriptions de propriété et d'objet, par exemple).

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 tâche 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 Get-WmiObject elle est utilisée 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 Job nom. Pour obtenir les résultats du travail, utilisez l’applet Receive-Job de commande.

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 autorisées sont :

  • -1: inchangé
  • 0: valeur par défaut
  • 1: 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 Kerberos ou NTLM standard. 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 le nom d'une classe WMI. Lors de l'utilisation de ce paramètre, l'applet de commande récupère des 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 Credential doit disposer des autorisations appropriées pour accéder aux informations.

Ce paramètre ne s'appuie pas sur la communication à distance Windows PowerShell, laquelle utilise le service Gestion des services Web. Vous pouvez utiliser le paramètre ComputerName de Get-WmiObject même si votre ordinateur n’est pas configuré pour exécuter des commandes distantes WS-Management.

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 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\User01ou 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. 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, quelles que soient ses classes de base ou 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 ne passe 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êtes 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 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. 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 Namespace .

Si vous spécifiez le paramètre List , mais pas le paramètre Namespace , Get-WmiObject utilise l’espace de noms Root\Cimv2 par défaut. Cette applet de commande n’utilise pas l’entrée de Registre par défaut Namespace dans la clé de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting Registre 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 par défaut pour les objets WMI. Entrez une valeur au MS_<LCID> format.

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 Class , le paramètre Namespace 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 List , 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 utilisant le langage de requêtes WMI (WQL) spécifiée. Ce paramètre ne prend pas en charge les requêtes d'événement.

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 Class .

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 pouvant ê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. Sinon, l’objet qui Get-WmiObject retourne dépend de la valeur du paramètre Class .

Notes

Windows PowerShell inclut les alias suivants pour Get-WmiObject:

  • gwmi

Pour accéder aux informations se rapportant à WMI sur un ordinateur distant, l'applet de commande doit s'exécuter sous un compte qui est membre du groupe des administrateurs locaux sur l'ordinateur distant. Le contrôle d'accès par défaut sur l'espace de noms WMI de l'espace de stockage distant peut également être modifié afin d'octroyer des droits d'accès à d'autres comptes.

Seules quelques 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 Types.ps1xml fichier de configuration. Pour obtenir toutes les propriétés d’un objet WMI, utilisez les applets de commande ou Format-List les Get-Member applets de commande.