Partager via


Get-Command

Obtient toutes les commandes.

Syntaxe

Get-Command
   [-Verb <String[]>]
   [-Noun <String[]>]
   [-Module <String[]>]
   [-FullyQualifiedModule <ModuleSpecification[]>]
   [-TotalCount <Int32>]
   [-Syntax]
   [-ShowCommandInfo]
   [[-ArgumentList] <Object[]>]
   [-All]
   [-ListImported]
   [-ParameterName <String[]>]
   [-ParameterType <PSTypeName[]>]
   [<CommonParameters>]
Get-Command
   [[-Name] <String[]>]
   [-Module <String[]>]
   [-FullyQualifiedModule <ModuleSpecification[]>]
   [-CommandType <CommandTypes>]
   [-TotalCount <Int32>]
   [-Syntax]
   [-ShowCommandInfo]
   [[-ArgumentList] <Object[]>]
   [-All]
   [-ListImported]
   [-ParameterName <String[]>]
   [-ParameterType <PSTypeName[]>]
   [<CommonParameters>]

Description

L’applet Get-Command de commande obtient toutes les commandes installées sur l’ordinateur, notamment les applets de commande, les alias, les fonctions, les filtres, les scripts et les applications. Get-Command obtient les commandes des modules et commandes PowerShell importés à partir d’autres sessions. Pour obtenir uniquement les commandes qui ont été importées dans la session active, utilisez le paramètre ListImported .

Sans paramètres, Get-Command obtient toutes les applets de commande, fonctions et alias installés sur l’ordinateur. Get-Command * obtient tous les types de commandes, y compris tous les fichiers non PowerShell dans la variable d’environnement Path ($env:Path), qu’il répertorie dans le type de commande Application.

Get-Command qui utilise le nom exact de la commande, sans caractères génériques, importe automatiquement le module qui contient la commande afin que vous puissiez utiliser la commande immédiatement. Pour activer, désactiver et configurer l’importation automatique de modules, utilisez la $PSModuleAutoLoadingPreference variable de préférence. Pour plus d’informations, consultez about_Preference_Variables.

Get-Command obtient ses données directement à partir du code de commande, contrairement Get-Helpà ce qui obtient ses informations à partir de rubriques d’aide.

À compter de Windows PowerShell 5.0, les résultats de l’applet Get-Command de commande affichent une colonne Version par défaut. Une nouvelle propriété Version a été ajoutée à la classe CommandInfo .

Exemples

Exemple 1 : Obtenir des applets de commande, des fonctions et des alias

Cette commande permet d’obtenir les cmdlets, fonctions et alias PowerShell installés sur l’ordinateur.

Get-Command

Exemple 2 : Obtenir des commandes dans la session active

Cette commande utilise le paramètre ListImported pour obtenir uniquement les commandes de la session active.

Get-Command -ListImported

Exemple 3 : Obtenir des applets de commande et les afficher dans l’ordre

Cette commande obtient toutes les applets de commande, les trie par ordre alphabétique en fonction du nom de l'applet de commande, et les affiche ensuite dans des groupes basés sur le nom. Cet affichage peut vous aider à trouver les applets de commande d'une tâche.

Get-Command -Type Cmdlet | Sort-Object -Property Noun | Format-Table -GroupBy Noun

Exemple 4 : Obtenir des commandes dans un module

Cette commande utilise le paramètre Module pour obtenir les commandes dans les modules Microsoft.PowerShell.Security et Microsoft.PowerShell.Utility.

Get-Command -Module Microsoft.PowerShell.Security, Microsoft.PowerShell.Utility

Exemple 5 : Obtenir des informations sur une applet de commande

Cette commande obtient des informations sur l’applet de Get-AppLockerPolicy commande. Il importe également le module AppLocker , qui ajoute toutes les commandes du module AppLocker à la session active.

Get-Command Get-AppLockerPolicy

Lorsqu’un module est importé automatiquement, l’effet est identique à l’utilisation de l’applet de commande Import-Module. Le module peut ajouter des commandes, des types et des fichiers de mise en forme, puis exécuter des scripts dans la session. Pour activer, désactiver et configurer l’importation automatique de modules, utilisez la $PSModuleAutoLoadingPreference variable de préférence. Pour plus d’informations, consultez about_Preference_Variables.

Exemple 6 : Obtenir la syntaxe d’une applet de commande

Cette commande utilise les paramètres ArgumentList et Syntax pour obtenir la syntaxe de l’applet Get-ChildItem de commande lorsqu’elle est utilisée dans le lecteur Cert : . Le lecteur Cert : est un lecteur PowerShell que le fournisseur de certificats ajoute à la session.

Get-Command  -Name Get-Childitem -Args Cert: -Syntax

Lorsque vous comparez la syntaxe affichée dans la sortie avec la syntaxe affichée lorsque vous omettez le paramètre Args (ArgumentList), vous verrez que le fournisseur de certificats ajoute un paramètre dynamique, CodeSigningCert, à l’applet Get-ChildItem de commande.

Pour plus d’informations sur le fournisseur de certificats, consultez about_Certificate_Provider.

Exemple 7 : Obtenir des paramètres dynamiques

La commande de l’exemple utilise la Get-DynamicParameters fonction pour obtenir les paramètres dynamiques ajoutés par le fournisseur de certificats à l’applet Get-ChildItem de commande lorsqu’il est utilisé dans le lecteur Cert : .

function Get-DynamicParameters
{
    param ($Cmdlet, $PSDrive)
    (Get-Command -Name $Cmdlet -ArgumentList $PSDrive).ParameterSets |
      ForEach-Object {$_.Parameters} |
        Where-Object { $_.IsDynamic } |
          Select-Object -Property Name -Unique
}
Get-DynamicParameters -Cmdlet Get-ChildItem -PSDrive Cert:

Name
----
CodeSigningCert

La Get-DynamicParameters fonction de cet exemple obtient les paramètres dynamiques d’une applet de commande. Il s'agit d'une alternative à la méthode utilisée dans l'exemple précédent. Un paramètre dynamique peut être ajouté à une applet de commande par une autre applet de commande ou un fournisseur.

Exemple 8 : Obtenir toutes les commandes de tous les types

Cette commande obtient toutes les commandes de tous les types sur l’ordinateur local, y compris les fichiers exécutables dans les chemins d’accès de la variable d’environnement Path ($env:path).

Get-Command *

Elle retourne un objet ApplicationInfo (System.Management.Automation.ApplicationInfo) pour chaque fichier, et non un objet FileInfo (System.IO.FileInfo).

Exemple 9 : Obtenir des applets de commande à l’aide d’un nom de paramètre et d’un type

Cette commande obtient les applets de commande qui ont un paramètre dont le nom inclut Auth et dont le type est AuthenticationMechanism.

Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism

Vous pouvez vous servir d'une commande similaire à celle-ci pour rechercher les applets de commande qui vous permettent de spécifier la méthode utilisée pour authentifier l'utilisateur.

Le paramètre ParameterType distingue les paramètres qui prennent une valeur AuthenticationMechanism de ceux qui prennent un paramètre AuthenticationLevel , même lorsqu’ils ont des noms similaires.

Exemple 10 : Obtenir un alias

Cet exemple montre comment utiliser l’applet Get-Command de commande avec un alias.

Get-Command -Name dir

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Alias           dir -> Get-ChildItem

Bien qu’il soit généralement utilisé sur les applets de commande et les fonctions, Get-Command obtient également des scripts, des fonctions, des alias et des fichiers exécutables.

La sortie de la commande affiche l’affichage spécial de la valeur de propriété Name pour les alias. L'affichage montre l'alias et le nom de commande complet.

Exemple 11 : Obtenir toutes les instances de la commande Bloc-notes

Cet exemple utilise le paramètre All de l’applet Get-Command de commande pour afficher toutes les instances de la Notepad commande sur l’ordinateur local.

Get-Command Notepad -All | Format-Table CommandType, Name, Definition

CommandType     Name           Definition
-----------     ----           ----------
Application     notepad.exe    C:\WINDOWS\system32\notepad.exe
Application     NOTEPAD.EXE    C:\WINDOWS\NOTEPAD.EXE

Le paramètre All est utile lorsqu’il existe plusieurs commandes portant le même nom dans la session.

À compter de Windows PowerShell 3.0, par défaut, lorsque la session inclut plusieurs commandes portant le même nom, Get-Command obtient uniquement la commande qui s’exécute lorsque vous tapez le nom de la commande. Avec le paramètre All , Get-Command obtient toutes les commandes avec le nom spécifié et les retourne dans l’ordre de priorité d’exécution. Pour exécuter une autre commande que la première de la liste, tapez le chemin d'accès complet de la commande.

Pour plus d’informations sur la priorité des commandes, consultez about_Command_Precedence.

Exemple 12 : Obtenir le nom d’un module qui contient une applet de commande

Cette commande obtient le nom du module dans lequel l’applet Get-Date de commande provient. La commande utilise la propriété ModuleName de toutes les commandes.

(Get-Command Get-Date).ModuleName

Microsoft.PowerShell.Utility

Ce format de commande fonctionne sur les commandes des modules PowerShell, même s’ils ne sont pas importés dans la session.

Exemple 13 : Obtenir des applets de commande et des fonctions qui ont un type de sortie

Get-Command -Type Cmdlet | Where-Object OutputType | Format-List -Property Name, OutputType

Cette commande obtient les applets de commande et les fonctions qui ont un type de sortie, ainsi que le type d'objet qu'elles retournent.

La première partie de la commande obtient toutes les applets de commande. Un opérateur de pipeline (|) envoie les applets de commande à l’applet Where-Object de commande, qui sélectionne uniquement celles dans lesquelles la propriété OutputType est remplie. Un autre opérateur de pipeline envoie les objets d’applet de commande sélectionnés à l’applet Format-List de commande, qui affiche le nom et le type de sortie de chaque applet de commande dans une liste.

La propriété OutputType d’un objet CommandInfo a une valeur non null uniquement lorsque le code de l’applet de commande définit l’attribut OutputType pour l’applet de commande.

Exemple 14 : Obtenir des applets de commande qui prennent un type d’objet spécifique comme entrée

Get-Command -ParameterType (((Get-NetAdapter)[0]).PSTypeNames)

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Disable-NetAdapter                                 NetAdapter
Function        Enable-NetAdapter                                  NetAdapter
Function        Rename-NetAdapter                                  NetAdapter
Function        Restart-NetAdapter                                 NetAdapter
Function        Set-NetAdapter                                     NetAdapter

Cette commande recherche les applets de commande qui acceptent des objets de carte réseau en entrée. Vous pouvez utiliser ce format de commande pour rechercher les applets de commande qui acceptent le type d'objet retourné par une commande.

La commande utilise la propriété intrinsèque PSTypeNames de tous les objets, qui obtient les types qui décrivent l’objet. Pour obtenir la propriété PSTypeNames d’une carte réseau, et non la propriété PSTypeNames d’une collection d’adaptateurs net, la commande utilise la notation de tableau pour obtenir le premier adaptateur net retourné par l’applet de commande. Pour obtenir la propriété PSTypeNames d’une carte réseau, et non la propriété PSTypeNames d’une collection d’adaptateurs net, la commande utilise la notation de tableau pour obtenir le premier adaptateur net retourné par l’applet de commande.

Paramètres

-All

Indique que cette applet de commande obtient toutes les commandes, y compris les commandes du même type qui ont le même nom. Par défaut, Get-Command obtient uniquement les commandes qui s’exécutent lorsque vous tapez le nom de la commande.

Pour plus d’informations sur la méthode utilisée par PowerShell pour sélectionner la commande à exécuter lorsque plusieurs commandes ont le même nom, consultez about_Command_Precedence. Pour plus d’informations sur les noms de commandes qualifiés par module et les commandes en cours d’exécution qui ne s’exécutent pas par défaut en raison d’un conflit de noms, consultez about_Modules.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Dans Windows PowerShell 2.0, Get-Command obtient toutes les commandes par défaut.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-ArgumentList

Spécifie un tableau d’arguments. Cette applet de commande obtient des informations sur une applet de commande ou une fonction lorsqu’elle est utilisée avec les paramètres spécifiés (« arguments »). L’alias de ArgumentList est Args.

Pour détecter les paramètres dynamiques disponibles uniquement lorsque certains autres paramètres sont utilisés, définissez la valeur d’ArgumentList sur les paramètres qui déclenchent les paramètres dynamiques.

Pour détecter les paramètres dynamiques qu’un fournisseur ajoute à une applet de commande, définissez la valeur du paramètre ArgumentList sur un chemin d’accès dans le lecteur du fournisseur, tel que WSMan :, HKLM :, ou Cert :. Lorsque la commande est une applet de commande du fournisseur PowerShell, entrez un seul chemin d’accès dans chaque commande. Les applets de commande du fournisseur retournent uniquement les paramètres dynamiques du premier chemin d’accès à la valeur d’ArgumentList. Pour plus d’informations sur les applets de commande du fournisseur, consultez about_Providers.

Type:Object[]
Alias:Args
Position:1
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CommandType

Spécifie les types de commandes que cette applet de commande obtient. Entrez un ou plusieurs types de commande. Utilisez CommandType ou son alias, Type. Par défaut, Get-Command obtient toutes les applets de commande, fonctions et alias.

Les valeurs valides pour ce paramètre sont :

  • Alias: obtient les alias de toutes les commandes PowerShell. Pour plus d’informations, consultez about_Aliases.

  • All: obtient tous les types de commandes. Cette valeur de paramètre est l’équivalent de Get-Command *.

  • Application: Obtient des fichiers non PowerShell dans les chemins d’accès répertoriés dans la variable d’environnement Path ($env:path, y compris .txt, .exeet .dll les fichiers). Pour plus d’informations sur la variable d’environnement Path , consultez about_Environment_Variables.

  • Cmdlet: obtient toutes les applets de commande.

  • ExternalScript: obtient tous les fichiers dans les .ps1 chemins d’accès répertoriés dans la variable d’environnement Path ($env:path).

  • Filter et Function: Obtient toutes les fonctions et filtres avancés powerShell et simples.

  • Script: obtient tous les blocs de script. Pour obtenir des scripts PowerShell (.ps1 fichiers), utilisez la ExternalScript valeur.

  • Workflow: obtient tous les flux de travail. Pour plus d’informations sur les flux de travail, consultez Présentation du flux de travail Windows PowerShell.

Ces valeurs sont définies comme une énumération basée sur des indicateurs. Vous pouvez combiner plusieurs valeurs pour définir plusieurs indicateurs à l’aide de ce paramètre. Les valeurs peuvent être passées au paramètre CommandType en tant que tableau de valeurs ou sous forme de chaîne séparées par des virgules de ces valeurs. L’applet de commande combine les valeurs à l’aide d’une opération binary-OR. La transmission de valeurs en tant que tableau est l’option la plus simple et vous permet également d’utiliser la saisie semi-automatique sous forme de tabulation sur les valeurs.

Type:CommandTypes
Alias:Type
Valeurs acceptées:Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-FullyQualifiedModule

La valeur peut être un nom de module, une spécification complète du module ou un chemin d’accès à un fichier de module.

Lorsque la valeur est un chemin d’accès, le chemin d’accès peut être qualifié ou relatif complet. Un chemin relatif est résolu par rapport au script qui contient l’instruction using.

Lorsque la valeur est un nom ou une spécification de module, PowerShell recherche PSModulePath pour le module spécifié.

Une spécification de module est une table de hachage qui a les clés suivantes.

  • ModuleName - Obligatoire Spécifie le nom du module.

  • GUID - Facultatif Spécifie le GUID du module.

  • Il est également nécessaire de spécifier au moins l’une des trois clés ci-dessous.

    • ModuleVersion - Spécifie une version minimale acceptable du module.

    • MaximumVersion - Spécifie la version maximale acceptable du module.

    • RequiredVersion - Spécifie une version exacte et requise du module. Cela ne peut pas être utilisé avec les autres clés de version.

Vous ne pouvez pas spécifier le paramètre FullyQualifiedModule dans la même commande qu’un paramètre module . Les deux paramètres s’excluent mutuellement.

Type:ModuleSpecification[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-ListImported

Indique que cette applet de commande obtient uniquement les commandes de la session active.

À compter de PowerShell 3.0, par défaut, Get-Command obtient toutes les commandes installées, y compris, mais pas limitées, aux commandes de la session active. Dans PowerShell 2.0, il obtient uniquement les commandes de la session active.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Module

Spécifie un tableau de modules. Cette applet de commande obtient les commandes provenant des modules ou composants logiciels enfichables spécifiés. Entrez les noms des modules ou des composants logiciels enfichables.

Ce paramètre prend des valeurs de chaîne, mais la valeur de ce paramètre peut également être un objet PSModuleInfo ou PSSnapinInfo, tel que les objets retournés par les Get-ModuleGet-PSSnapinapplets de commande.Import-PSSession

Vous pouvez faire référence à ce paramètre par son nom, module ou par son alias, PSSnapin. Le nom de paramètre que vous choisissez n'a aucun effet sur la sortie de commande.

Type:String[]
Alias:PSSnapin
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:True

-Name

Spécifie un tableau de noms. Cette applet de commande obtient uniquement les commandes qui ont le nom spécifié. Entrez un nom ou un modèle de nom. Les caractères génériques sont autorisés.

Pour obtenir les commandes portant le même nom, utilisez le paramètre All . Lorsque deux commandes ont le même nom, par défaut, Get-Command obtient la commande qui s’exécute lorsque vous tapez le nom de la commande.

Type:String[]
Position:0
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:True

-Noun

Spécifie un tableau de noms de commandes. Cette applet de commande obtient des commandes, qui incluent des applets de commande, des fonctions et des alias, qui ont des noms qui incluent le nom spécifié. Entrez un ou plusieurs noms ou modèles de noms. Les caractères génériques sont autorisés.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:True

-ParameterName

Spécifie un tableau de noms de paramètres. Cette applet de commande obtient des commandes dans la session qui ont les paramètres spécifiés. Entrez des noms de paramètres ou des alias de paramètre. Les caractères génériques sont pris en charge.

Les paramètres ParameterName et ParameterType recherchent uniquement les commandes dans la session active.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

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:True

-ParameterType

Spécifie un tableau de noms de paramètres. Cette applet de commande obtient des commandes dans la session qui ont des paramètres du type spécifié. Entrez le nom complet ou partiel d'un type de paramètre. Les caractères génériques sont pris en charge.

Les paramètres ParameterName et ParameterType recherchent uniquement les commandes dans la session active.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:PSTypeName[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-ShowCommandInfo

Indique que cette applet de commande affiche des informations de commande.

Ce paramètre a été introduit dans Windows PowerShell 5.0.

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

-Syntax

Indique que cette applet de commande obtient uniquement les données spécifiées suivantes sur la commande :

  • Alias Obtient le nom standard.
  • Applets de commande. Obtient la syntaxe.
  • Fonctions et filtres. Obtient la définition de la fonction.
  • Scripts et applications ou fichiers. Obtient le chemin d’accès et le nom de fichier.
Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-TotalCount

Spécifie le nombre de commandes à obtenir. Vous pouvez utiliser ce paramètre pour limiter la sortie d'une commande.

Type:Int32
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Verb

Spécifie un tableau de verbes de commande. Cette applet de commande obtient des commandes, qui incluent des applets de commande, des fonctions et des alias, qui ont des noms qui incluent le verbe spécifié. Entrez un ou plusieurs verbes ou modèles de verbes. Les caractères génériques sont autorisés.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:True

Entrées

String

Vous pouvez diriger les noms de commandes vers cette applet de commande.

Sorties

CommandInfo

Cette applet de commande retourne des objets dérivés de la classe CommandInfo . Le type d’objet retourné dépend du type de commande qui Get-Command obtient.

AliasInfo

Représente des alias.

ApplicationInfo

Représente les applications et les fichiers.

CmdletInfo

Représente des applets de commande.

FunctionInfo

Représente les fonctions et les filtres.

WorkflowInfo

Représente les flux de travail.

Notes

Windows PowerShell inclut les alias suivants pour Get-Command:

  • gcm

  • Lorsque plusieurs commandes portant le même nom sont disponibles pour la session, Get-Command retourne la commande qui s’exécute lorsque vous tapez le nom de la commande. Pour obtenir les commandes portant le même nom, répertoriées dans l’ordre d’exécution, utilisez le paramètre All . Pour plus d’informations, consultez about_Command_Precedence.

  • Lorsqu’un module est importé automatiquement, l’effet est identique à l’utilisation de l’applet de Import-Module commande. Le module peut ajouter des commandes, des types et des fichiers de mise en forme, puis exécuter des scripts dans la session. Pour activer, désactiver et configurer l’importation automatique de modules, utilisez la $PSModuleAutoLoadingPreference variable de préférence. Pour plus d’informations, consultez about_Preference_Variables.