Partager via


Chapitre 2 - Le système d’aide

Dans une expérience conçue pour évaluer la compétence dans PowerShell, deux groupes distincts de professionnels de l’informatique ( débutants et experts) ont d’abord reçu un examen écrit sans accès à un ordinateur. Étonnamment, les scores de test ont indiqué des compétences comparables dans les deux groupes. Un test ultérieur a ensuite été administré, en mettant en miroir le premier mais avec une différence clé : les participants avaient accès à un ordinateur hors connexion équipé de PowerShell. Les résultats ont révélé un écart significatif entre les deux groupes cette fois.

Quels facteurs ont contribué aux résultats observés entre les deux évaluations ?

Les experts ne connaissaient pas toujours les réponses, mais ils savaient comment les trouver.

Les résultats observés dans les résultats des deux tests étaient parce que les experts ne mémorisent pas des milliers de commandes PowerShell. Au lieu de cela, ils excellent à l’utilisation du système d’aide dans PowerShell, ce qui leur permet de découvrir et d’apprendre à utiliser des commandes si nécessaire.

Devenir compétent avec le système d’aide est la clé du succès avec PowerShell.

J’ai entendu Jeffrey Snover, le créateur de PowerShell, partager une histoire similaire à plusieurs reprises.

Détectabilité

Les commandes compilées dans PowerShell sont appelées applets de commande, prononcées comme « command-let », et non « CMD-let ». La convention d’affectation de noms pour les applets de commande suit un format verbe-nom singulier pour les rendre facilement détectables. Par exemple, Get-Process est l’applet de commande pour déterminer les processus en cours d’exécution et Get-Service l’applet de commande pour récupérer une liste de services. Les fonctions, également appelées applets de commande de script et alias, sont d’autres types de commandes PowerShell présentées plus loin dans ce livre. Le terme « Commande PowerShell » décrit n’importe quelle commande dans PowerShell, qu’il s’agisse d’une applet de commande, d’une fonction ou d’un alias.

Vous pouvez également exécuter des commandes natives du système d’exploitation à partir de PowerShell, telles que des programmes de ligne de commande traditionnels tels ping.exe que et ipconfig.exe.

Les trois applets de commande principales dans PowerShell

  • Get-Help
  • Get-Command
  • Get-Member (décrite dans le chapitre 3)

Je suis souvent demandé : « Comment déterminer les commandes qui se trouvent dans PowerShell ? ». Les deux Get-Help sont des Get-Command ressources précieuses pour découvrir et comprendre les commandes dans PowerShell.

Get-Help

La première chose que vous devez savoir sur le système d’aide dans PowerShell consiste à utiliser l’applet Get-Help de commande.

Get-Help est une commande multi-usage qui vous permet d’apprendre à utiliser des commandes une fois que vous les avez trouvés. Vous pouvez également utiliser Get-Help pour localiser des commandes, mais de manière différente et plus indirecte par rapport à Get-Command.

Lorsque vous utilisez Get-Help pour localiser des commandes, il effectue initialement une recherche de caractères génériques pour les noms de commandes en fonction de votre entrée. Si cela ne trouve aucune correspondance, il effectue une recherche complète en texte intégral dans tous les articles d’aide PowerShell sur votre système. Si cela ne trouve pas non plus de résultats, il retourne une erreur.

Voici comment afficher Get-Help le contenu d’aide de l’applet Get-Help de commande.

Get-Help -Name Get-Help

À compter de PowerShell version 3.0, le contenu d’aide n’est pas préinstallé avec le système d’exploitation. Lorsque vous exécutez Get-Help pour la première fois, un message vous demande si vous souhaitez télécharger les fichiers d’aide PowerShell sur votre ordinateur.

Répondre à Oui en appuyant sur Y exécute l’applet Update-Help de commande, en téléchargeant le contenu d’aide.

Do you want to run Update-Help?
The Update-Help cmdlet downloads the most current Help files for Windows
PowerShell modules, and installs them on your computer. For more information
about the Update-Help cmdlet, see
https:/go.microsoft.com/fwlink/?LinkId=210614.
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):

Si vous ne recevez pas ce message, exécutez Update-Help une session PowerShell avec élévation de privilèges s’exécutant en tant qu’administrateur.

Une fois la mise à jour terminée, l’article d’aide s’affiche.

Prenez un moment pour exécuter l’exemple sur votre ordinateur, passer en revue la sortie et observer comment le système d’aide organise les informations.

  • NOM
  • SYNOPSIS
  • SYNTAX
  • DESCRIPTION
  • LIENS CONNEXES
  • Remarques

Lorsque vous passez en revue la sortie, gardez à l’esprit que les articles d’aide contiennent souvent une grande quantité d’informations, et ce que vous voyez par défaut n’est pas l’intégralité de l’article d’aide.

Paramètres

Lorsque vous exécutez une commande dans PowerShell, vous devrez peut-être fournir des informations supplémentaires ou une entrée à la commande. Les paramètres vous permettent de spécifier des options et des arguments qui modifient le comportement d’une commande. La section SYNTAXE de chaque article d’aide décrit les paramètres disponibles pour la commande.

Get-Help a plusieurs paramètres que vous pouvez spécifier pour retourner l’intégralité de l’article d’aide ou d’un sous-ensemble pour une commande. Pour afficher tous les paramètres disponibles pour Get-Help, consultez la section SYNTAXE de son article d’aide, comme illustré dans l’exemple suivant.

...
SYNTAX
    Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
    | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
    Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
    Class | Configuration}] [-Component <System.String[]>] [-Full]
    [-Functionality <System.String[]>] [-Path <System.String>] [-Role
    <System.String[]>] [<CommonParameters>]

    Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
    | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
    Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
    Class | Configuration}] [-Component <System.String[]>] -Detailed
    [-Functionality <System.String[]>] [-Path <System.String>] [-Role
    <System.String[]>] [<CommonParameters>]

    Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
    | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
    Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
    Class | Configuration}] [-Component <System.String[]>] -Examples
    [-Functionality <System.String[]>] [-Path <System.String>] [-Role
    <System.String[]>] [<CommonParameters>]

    Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
    | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
    Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
    Class | Configuration}] [-Component <System.String[]>] [-Functionality
    <System.String[]>] -Online [-Path <System.String>] [-Role
    <System.String[]>] [<CommonParameters>]

    Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
    | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
    Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
    Class | Configuration}] [-Component <System.String[]>] [-Functionality
    <System.String[]>] -Parameter <System.String> [-Path <System.String>]
    [-Role <System.String[]>] [<CommonParameters>]

    Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
    | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
    Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
    Class | Configuration}] [-Component <System.String[]>] [-Functionality
    <System.String[]>] [-Path <System.String>] [-Role <System.String[]>]
    -ShowWindow [<CommonParameters>]
...

Jeux de paramètres

Lorsque vous passez en revue la section SYNTAXE pour Get-Help, notez que les informations semblent être répétées six fois. Chacun de ces blocs est un jeu de paramètres individuel, indiquant que l’applet Get-Help de commande comporte six ensembles distincts de paramètres. Un examen plus approfondi révèle que chaque jeu de paramètres contient au moins un paramètre unique, ce qui le rend différent des autres.

Les jeux de paramètres s’excluent mutuellement. Une fois que vous avez spécifié un paramètre unique qui existe uniquement dans un jeu de paramètres, PowerShell vous limite à l’utilisation des paramètres contenus dans ce jeu de paramètres. Par exemple, vous ne pouvez pas utiliser les paramètres complets et détaillés de l’ensemble, car ils appartiennent à différents jeux de Get-Help paramètres.

Chacun des paramètres suivants appartient à un jeu de paramètres différent pour l’applet de Get-Help commande.

  • Complète
  • Detailed
  • Exemples
  • En ligne
  • Paramètre
  • ShowWindow

Syntaxe de la commande

Si vous débutez avec PowerShell, comprendre les informations cryptiques ( caractérisées par des crochets et des crochets) dans la section SYNTAXE peut sembler écrasante. Toutefois, l’apprentissage de ces éléments de syntaxe est essentiel pour devenir compétent avec PowerShell. Plus vous utilisez souvent le système d’aide PowerShell, plus il devient facile de mémoriser toutes les nuances.

Affichez la syntaxe de l’applet Get-EventLog de commande.

Get-Help Get-EventLog

La sortie suivante montre la partie pertinente de l’article d’aide.

...
SYNTAX
    Get-EventLog [-LogName] <System.String> [[-InstanceId]
    <System.Int64[]>] [-After <System.DateTime>] [-AsBaseObject] [-Before
    <System.DateTime>] [-ComputerName <System.String[]>] [-EntryType {Error
    | Information | FailureAudit | SuccessAudit | Warning}] [-Index
    <System.Int32[]>] [-Message <System.String>] [-Newest <System.Int32>]
    [-Source <System.String[]>] [-UserName <System.String[]>]
    [<CommonParameters>]

    Get-EventLog [-AsString] [-ComputerName <System.String[]>] [-List]
    [<CommonParameters>]
...

Les informations de syntaxe incluent des paires de crochets ([]). En fonction de leur utilisation, ces crochets servent deux objectifs différents.

  • Les éléments placés entre crochets sont facultatifs.
  • Un ensemble vide de crochets suivant un type de données, tel que <string[]>, indique que le paramètre peut accepter plusieurs valeurs passées en tant que tableau ou objet de collection.

Paramètres positionnels

Certaines applets de commande sont conçues pour accepter des paramètres positionnels. Les paramètres positionnels vous permettent de fournir une valeur sans spécifier le nom du paramètre. Lorsque vous utilisez un paramètre positionnement, vous devez spécifier sa valeur à la position correcte sur la ligne de commande. Vous trouverez les informations de position d’un paramètre dans la section PARAMETERS de l’article d’aide d’une commande. Lorsque vous spécifiez explicitement des noms de paramètres, vous pouvez utiliser les paramètres dans n’importe quel ordre.

Pour l’applet Get-EventLog de commande, le premier paramètre du premier jeu de paramètres est LogName. LogName est placé entre crochets, indiquant qu’il s’agit d’un paramètre positionnel.

Get-EventLog [-LogName] <System.String>

Étant donné que LogName est un paramètre positionnel, vous pouvez le spécifier par nom ou position. Selon les crochets qui suivent le nom du paramètre, la valeur de LogName doit être une seule chaîne. L’absence de crochets englobant le nom du paramètre et le type de données indique que LogName est un paramètre obligatoire dans ce jeu de paramètres particulier.

Le deuxième paramètre de ce jeu de paramètres est InstanceId. Le nom du paramètre et le type de données sont entièrement placés entre crochets, ce qui signifie que InstanceId est un paramètre facultatif.

[[-InstanceId] <System.Int64[]>]

En outre, InstanceId a sa propre paire de crochets, indiquant qu’il s’agit d’un paramètre positionnel similaire au paramètre LogName . Après le type de données, un ensemble vide de crochets implique que l’InstanceId peut accepter plusieurs valeurs.

Paramètres de commutateur

Un paramètre booléen est un paramètre qui ne nécessite pas de valeur. Vous pouvez facilement identifier les paramètres de commutateur, car il n’existe aucun type de données suivant le nom du paramètre. Lorsque vous spécifiez un paramètre de commutateur, sa valeur est true. Lorsque vous ne spécifiez pas de paramètre de commutateur, sa valeur est false.

Le deuxième jeu de paramètres inclut un paramètre List , qui est un paramètre switch. Lorsque vous spécifiez le paramètre List , il retourne une liste des journaux d’événements sur l’ordinateur local.

[-List]

Une approche simplifiée de la syntaxe

Il existe une méthode plus conviviale pour obtenir les mêmes informations que la syntaxe de commande cryptique pour certaines commandes, sauf en anglais brut. PowerShell retourne l’article d’aide complet lors de l’utilisation Get-Help avec le paramètre Full , ce qui facilite la compréhension de l’utilisation d’une commande.

Get-Help -Name Get-Help -Full

Prenez un moment pour exécuter l’exemple sur votre ordinateur, passer en revue la sortie et observer comment le système d’aide organise les informations.

  • NOM
  • SYNOPSIS
  • SYNTAX
  • DESCRIPTION
  • PARAMETERS
  • ENTRÉES
  • SORTIES
  • REMARQUES
  • EXEMPLES
  • LIENS CONNEXES

En spécifiant le paramètre Full avec l’applet Get-Help de commande, la sortie comprend plusieurs sections supplémentaires. Parmi ces sections, PARAMETERS fournit souvent une explication détaillée de chaque paramètre. Toutefois, l’étendue de ces informations varie en fonction de la commande spécifique que vous examinez.

...
    -Detailed <System.Management.Automation.SwitchParameter>
        Adds parameter descriptions and examples to the basic help display.
        This parameter is effective only when the help files are installed
        on the computer. It has no effect on displays of conceptual ( About_
        ) help.

        Required?                    true
        Position?                    named
        Default value                False
        Accept pipeline input?       False
        Accept wildcard characters?  false

    -Examples <System.Management.Automation.SwitchParameter>
        Displays only the name, synopsis, and examples. This parameter is
        effective only when the help files are installed on the computer. It
        has no effect on displays of conceptual ( About_ ) help.

        Required?                    true
        Position?                    named
        Default value                False
        Accept pipeline input?       False
        Accept wildcard characters?  false

    -Full <System.Management.Automation.SwitchParameter>
        Displays the entire help article for a cmdlet. Full includes
        parameter descriptions and attributes, examples, input and output
        object types, and additional notes.

        This parameter is effective only when the help files are installed
        on the computer. It has no effect on displays of conceptual ( About_
        ) help.

        Required?                    false
        Position?                    named
        Default value                False
        Accept pipeline input?       False
        Accept wildcard characters?  false
...

Lorsque vous avez exécuté la commande précédente pour afficher l’aide de la Get-Help commande, vous avez probablement remarqué que la sortie défile trop rapidement pour la lire.

Si vous utilisez la console PowerShell, Terminal Windows ou VS Code et que vous devez afficher un article d’aide, la help fonction peut être utile. Il canalise la sortie vers , affichant une page de contenu d’aide Get-Help more.comà la fois. Je recommande d’utiliser la help fonction au lieu de l’applet Get-Help de commande, car elle offre une meilleure expérience utilisateur et elle est moins à taper.

Remarque

L’ISE ne prend pas en charge l’utilisation more.com. L’exécution help fonctionne de la même façon que Get-Help.

Exécutez chacune des commandes suivantes dans PowerShell sur votre ordinateur.

Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full

Avez-vous observé des variations dans la sortie lorsque vous avez exécuté les commandes précédentes ?

Dans l’exemple précédent, la première ligne utilise l’applet Get-Help de commande, la deuxième utilise la help fonction et la troisième ligne omet le paramètre Name lors de l’utilisation de la help fonction. Étant donné que Name est un paramètre positionnel, le troisième exemple tire parti de sa position au lieu d’indiquer explicitement le nom du paramètre.

La différence est que les deux dernières commandes affichent leur sortie une page à la fois. Lorsque vous utilisez la help fonction, appuyez sur Espace pour afficher la page suivante du contenu ou Q à quitter. Si vous devez arrêter une commande s’exécutant de manière interactive dans PowerShell, appuyez sur Ctrl+C.

Pour trouver rapidement des informations sur un paramètre spécifique, utilisez le paramètre Parameter . Cette approche retourne du contenu contenant uniquement les informations spécifiques aux paramètres, plutôt que l’intégralité de l’article d’aide. Il s’agit du moyen le plus simple de trouver des informations sur un paramètre spécifique.

L’exemple suivant utilise la help fonction avec le paramètre Parameter pour renvoyer des informations à partir de l’article d’aide pour le paramètre Name de Get-Help.

help Get-Help -Parameter Name

Les informations d’aide indiquent que le paramètre Name est positionnel et doit être spécifié à la première position (position zéro) lorsqu’il est utilisé en position.

-Name <System.String>
    Gets help about the specified command or concept. Enter the name of a
    cmdlet, function, provider, script, or workflow, such as `Get-Member`,
    a conceptual article name, such as `about_Objects`, or an alias, such
    as `ls`. Wildcard characters are permitted in cmdlet and provider
    names, but you can't use wildcard characters to find the names of
    function help and script help articles.

    To get help for a script that isn't located in a path that's listed in
    the `$env:Path` environment variable, type the script's path and file
    name.

    If you enter the exact name of a help article, `Get-Help` displays the
    article contents.

    If you enter a word or word pattern that appears in several help
    article titles, `Get-Help` displays a list of the matching titles.

    If you enter any text that doesn't match any help article titles,
    `Get-Help` displays a list of articles that include that text in their
    contents.

    The names of conceptual articles, such as `about_Objects`, must be
    entered in English, even in non-English versions of PowerShell.

    Required?                    false
    Position?                    0
    Default value                None
    Accept pipeline input?       True (ByPropertyName)
    Accept wildcard characters?  true

Le paramètre Name attend une valeur de chaîne identifiée par le <String> type de données en regard du nom du paramètre.

Il existe plusieurs autres paramètres que vous pouvez spécifier pour Get-Help renvoyer un sous-ensemble d’un article d’aide. Pour voir comment ils fonctionnent, exécutez les commandes suivantes sur votre ordinateur.

Get-Help -Name Get-Command -Full
Get-Help -Name Get-Command -Detailed
Get-Help -Name Get-Command -Examples
Get-Help -Name Get-Command -Online
Get-Help -Name Get-Command -Parameter Noun
Get-Help -Name Get-Command -ShowWindow

En général, j’utilise help <command name> avec le paramètre Full ou Online. Si vous n’avez qu’un intérêt dans les exemples, utilisez le paramètre Exemples . Si vous n’avez qu’un intérêt dans un paramètre spécifique, utilisez le paramètre Paramètre .

Lorsque vous utilisez le paramètre ShowWindow , il affiche le contenu d’aide dans une fenêtre pouvant faire l’objet d’une recherche distincte. Vous pouvez déplacer cette fenêtre vers un autre moniteur si vous avez plusieurs moniteurs. Toutefois, le paramètre ShowWindow présente un bogue connu qui peut l’empêcher d’afficher l’intégralité de l’article d’aide. Le paramètre ShowWindow nécessite également un système d’exploitation avec une interface utilisateur graphique (GUI). Elle retourne une erreur lorsque vous tentez de l’utiliser sur Windows Server Core.

Si vous avez accès à Internet, vous pouvez utiliser le paramètre Online à la place. Le paramètre Online ouvre l’article d’aide dans votre navigateur web par défaut. Le contenu en ligne est le contenu le plus à jour. Le navigateur vous permet de rechercher le contenu de l’aide et d’afficher d’autres articles d’aide connexes.

Remarque

Le paramètre En ligne n’est pas pris en charge pour les articles About .

help Get-Command -Online

Recherche de commandes avec Get-Help

Pour rechercher des commandes avec Get-Help, spécifiez un terme de recherche entouré de caractères génériques astérisques (*) pour la valeur du paramètre Name . L’exemple suivant utilise le paramètre Name positionally.

help *process*
Name                              Category  Module                    Synops
----                              --------  ------                    ------
Enter-PSHostProcess               Cmdlet    Microsoft.PowerShell.Core Con...
Exit-PSHostProcess                Cmdlet    Microsoft.PowerShell.Core Clo...
Get-PSHostProcessInfo             Cmdlet    Microsoft.PowerShell.Core Get...
Debug-Process                     Cmdlet    Microsoft.PowerShell.M... Deb...
Get-Process                       Cmdlet    Microsoft.PowerShell.M... Get...
Start-Process                     Cmdlet    Microsoft.PowerShell.M... Sta...
Stop-Process                      Cmdlet    Microsoft.PowerShell.M... Sto...
Wait-Process                      Cmdlet    Microsoft.PowerShell.M... Wai...
Invoke-LapsPolicyProcessing       Cmdlet    LAPS                      Inv...
ConvertTo-ProcessMitigationPolicy Cmdlet    ProcessMitigations        Con...
Get-ProcessMitigation             Cmdlet    ProcessMitigations        Get...
Set-ProcessMitigation             Cmdlet    ProcessMitigations        Set...

Dans ce scénario, vous n’êtes pas obligé d’ajouter les * caractères génériques. Si Get-Help vous ne trouvez pas de commande correspondant à la valeur que vous avez fournie, elle effectue une recherche en texte intégral pour cette valeur. L’exemple suivant produit les mêmes résultats que la spécification du * caractère générique sur chaque fin de process.

help process

Lorsque vous spécifiez un caractère générique dans la valeur, Get-Help recherche uniquement les commandes qui correspondent au modèle que vous avez fourni. Il n’effectue pas de recherche en texte intégral. La commande suivante ne retourne aucun résultat.

help pr*cess

PowerShell génère une erreur si vous spécifiez une valeur commençant par un tiret sans l’inclure entre guillemets, car il l’interprète comme un nom de paramètre. Aucun nom de paramètre n’existe pour l’applet Get-Help de commande.

help -process

Si vous tentez de rechercher des commandes qui se terminent -processpar , vous devez ajouter un * au début de la valeur.

help *-process

Lorsque vous recherchez des commandes PowerShell avec Get-Help, il est préférable d’être vague plutôt que trop spécifique.

Lorsque vous avez recherché process précédemment, les résultats n’ont retourné que les commandes incluses process dans leur nom. Mais si vous recherchez processes, il ne trouve aucune correspondance pour les noms de commandes. Comme indiqué précédemment, lorsque l’aide ne trouve aucune correspondance, elle effectue une recherche complète en texte intégral de chaque article d’aide sur votre système et retourne ces résultats. Ce type de recherche produit souvent plus de résultats que prévu, y compris les informations non pertinentes pour vous.

help processes
Name                              Category  Module                    Synops
----                              --------  ------                    ------
Disconnect-PSSession              Cmdlet    Microsoft.PowerShell.Core Dis...
Enter-PSHostProcess               Cmdlet    Microsoft.PowerShell.Core Con...
ForEach-Object                    Cmdlet    Microsoft.PowerShell.Core Per...
Get-PSHostProcessInfo             Cmdlet    Microsoft.PowerShell.Core Get...
Get-PSSessionConfiguration        Cmdlet    Microsoft.PowerShell.Core Get...
New-PSSessionOption               Cmdlet    Microsoft.PowerShell.Core Cre...
New-PSTransportOption             Cmdlet    Microsoft.PowerShell.Core Cre...
Out-Host                          Cmdlet    Microsoft.PowerShell.Core Sen...
Start-Job                         Cmdlet    Microsoft.PowerShell.Core Sta...
Where-Object                      Cmdlet    Microsoft.PowerShell.Core Sel...
Debug-Process                     Cmdlet    Microsoft.PowerShell.M... Deb...
Get-Process                       Cmdlet    Microsoft.PowerShell.M... Get...
Get-WmiObject                     Cmdlet    Microsoft.PowerShell.M... Get...
Start-Process                     Cmdlet    Microsoft.PowerShell.M... Sta...
Stop-Process                      Cmdlet    Microsoft.PowerShell.M... Sto...
Wait-Process                      Cmdlet    Microsoft.PowerShell.M... Wai...
Clear-Variable                    Cmdlet    Microsoft.PowerShell.U... Del...
Convert-String                    Cmdlet    Microsoft.PowerShell.U... For...
ConvertFrom-Csv                   Cmdlet    Microsoft.PowerShell.U... Con...
ConvertFrom-Json                  Cmdlet    Microsoft.PowerShell.U... Con...
ConvertTo-Html                    Cmdlet    Microsoft.PowerShell.U... Con...
ConvertTo-Xml                     Cmdlet    Microsoft.PowerShell.U... Cre...
Debug-Runspace                    Cmdlet    Microsoft.PowerShell.U... Sta...
Export-Csv                        Cmdlet    Microsoft.PowerShell.U... Con...
Export-FormatData                 Cmdlet    Microsoft.PowerShell.U... Sav...
Format-List                       Cmdlet    Microsoft.PowerShell.U... For...
Format-Table                      Cmdlet    Microsoft.PowerShell.U... For...
Get-Unique                        Cmdlet    Microsoft.PowerShell.U... Ret...
Group-Object                      Cmdlet    Microsoft.PowerShell.U... Gro...
Import-Clixml                     Cmdlet    Microsoft.PowerShell.U... Imp...
Import-Csv                        Cmdlet    Microsoft.PowerShell.U... Cre...
Measure-Object                    Cmdlet    Microsoft.PowerShell.U... Cal...
Out-File                          Cmdlet    Microsoft.PowerShell.U... Sen...
Out-GridView                      Cmdlet    Microsoft.PowerShell.U... Sen...
Select-Object                     Cmdlet    Microsoft.PowerShell.U... Sel...
Set-Variable                      Cmdlet    Microsoft.PowerShell.U... Set...
Sort-Object                       Cmdlet    Microsoft.PowerShell.U... Sor...
Tee-Object                        Cmdlet    Microsoft.PowerShell.U... Sav...
Trace-Command                     Cmdlet    Microsoft.PowerShell.U... Con...
Write-Information                 Cmdlet    Microsoft.PowerShell.U... Spe...
Export-BinaryMiLog                Cmdlet    CimCmdlets                Cre...
Get-CimAssociatedInstance         Cmdlet    CimCmdlets                Ret...
Get-CimInstance                   Cmdlet    CimCmdlets                Get...
Import-BinaryMiLog                Cmdlet    CimCmdlets                Use...
Invoke-CimMethod                  Cmdlet    CimCmdlets                Inv...
New-CimInstance                   Cmdlet    CimCmdlets                Cre...
Remove-CimInstance                Cmdlet    CimCmdlets                Rem...
Set-CimInstance                   Cmdlet    CimCmdlets                Mod...
Compress-Archive                  Function  Microsoft.PowerShell.A... Cre...
Get-Counter                       Cmdlet    Microsoft.PowerShell.D... Get...
Invoke-WSManAction                Cmdlet    Microsoft.WSMan.Manage... Inv...
Remove-WSManInstance              Cmdlet    Microsoft.WSMan.Manage... Del...
Get-WSManInstance                 Cmdlet    Microsoft.WSMan.Manage... Dis...
New-WSManInstance                 Cmdlet    Microsoft.WSMan.Manage... Cre...
Set-WSManInstance                 Cmdlet    Microsoft.WSMan.Manage... Mod...
about_Arithmetic_Operators        HelpFile
about_Arrays                      HelpFile
about_Environment_Variables       HelpFile
about_Execution_Policies          HelpFile
about_Functions                   HelpFile
about_Jobs                        HelpFile
about_Logging                     HelpFile
about_Methods                     HelpFile
about_Objects                     HelpFile
about_Pipelines                   HelpFile
about_Preference_Variables        HelpFile
about_Remote                      HelpFile
about_Remote_Jobs                 HelpFile
about_Session_Configuration_Files HelpFile
about_Simplified_Syntax           HelpFile
about_Switch                      HelpFile
about_Variables                   HelpFile
about_Variable_Provider           HelpFile
about_Windows_Powershell_5.1      HelpFile
about_WQL                         HelpFile
about_WS-Management_Cmdlets       HelpFile
about_Foreach-Parallel            HelpFile
about_Parallel                    HelpFile
about_Sequence                    HelpFile

Lorsque vous avez recherché process, il a retourné 12 résultats. Toutefois, lors de la recherche processes, il a produit 78 résultats. Si votre recherche ne trouve qu’une seule correspondance, Get-Help affiche le contenu d’aide au lieu de répertorier les résultats de la recherche.

help *hotfix*
NAME
    Get-HotFix

SYNOPSIS
    Gets the hotfixes that are installed on local or remote computers.


SYNTAX
    Get-HotFix [-ComputerName <System.String[]>] [-Credential
    <System.Management.Automation.PSCredential>] [-Description
    <System.String[]>] [<CommonParameters>]

    Get-HotFix [[-Id] <System.String[]>] [-ComputerName <System.String[]>]
    [-Credential <System.Management.Automation.PSCredential>]
    [<CommonParameters>]


DESCRIPTION
    > This cmdlet is only available on the Windows platform. The
    `Get-Hotfix` cmdlet uses the Win32_QuickFixEngineering WMI class to
    list hotfixes that are installed on the local computer or specified
    remote computers.


RELATED LINKS
    Online Version: https://learn.microsoft.com/powershell/module/microsoft.
    powershell.management/get-hotfix?view=powershell-5.1&WT.mc_id=ps-gethelp
    about_Arrays
    Add-Content
    Get-ComputerRestorePoint
    Get-Credential
    Win32_QuickFixEngineering class

REMARKS
    To see the examples, type: "get-help Get-HotFix -examples".
    For more information, type: "get-help Get-HotFix -detailed".
    For technical information, type: "get-help Get-HotFix -full".
    For online help, type: "get-help Get-HotFix -online"

Vous pouvez également trouver des commandes qui manquent d’articles d’aide avec Get-Help, bien que cette fonctionnalité ne soit pas couramment connue. La more fonction est l’une des commandes qui n’ont pas d’article d’aide. Pour confirmer que vous pouvez rechercher des commandes avec Get-Help lesquelles vous n’incluez pas d’articles d’aide, utilisez la help fonction pour rechercher more.

help *more*

La recherche a trouvé une seule correspondance. Elle a donc renvoyé les informations de syntaxe de base que vous voyez lorsqu’une commande n’a pas d’article d’aide.

NAME
    more

SYNTAX
    more [[-paths] <string[]>]

ALIASES
    None

REMARKS
    None

Le système d’aide PowerShell contient également des articles d’aide conceptuels sur l’aide . Vous devez mettre à jour le contenu d’aide sur votre système pour obtenir les articles About . Pour plus d’informations, consultez la section Mise à jour de l’aide de ce chapitre.

Utilisez la commande suivante pour renvoyer une liste de tous les articles d’aide sur votre système.

help About_*

Lorsque vous limitez les résultats à un article d’aide à propos de l’aide, Get-Help affiche le contenu de cet article.

help about_Updatable_Help

Mise à jour de l’aide

Plus haut dans ce chapitre, vous avez mis à jour les articles d’aide PowerShell sur votre ordinateur la première fois que vous avez exécuté l’applet Get-Help de commande. Vous devez exécuter régulièrement l’applet Update-Help de commande sur votre ordinateur pour obtenir les mises à jour du contenu d’aide.

Important

Dans Windows PowerShell 5.1, vous devez exécuter Update-Help en tant qu’administrateur dans une session PowerShell avec élévation de privilèges.

Dans l’exemple suivant, Update-Help télécharge le contenu d’aide PowerShell pour tous les modules installés sur votre ordinateur. Vous devez utiliser le paramètre Force pour vous assurer que vous téléchargez la dernière version du contenu d’aide.

Update-Help -Force

Comme indiqué dans les résultats suivants, un module a retourné une erreur. Les erreurs ne sont pas rares et se produisent généralement lorsque l’auteur du module ne configure pas correctement l’aide pouvant être mise à jour.

Update-Help : Failed to update Help for the module(s) 'BitsTransfer' with UI
culture(s) {en-US} : Unable to retrieve the HelpInfo XML file for UI culture
en-US. Make sure the HelpInfoUri property in the module manifest is valid or
check your network connection and then try the command again.
At line:1 char:1
+ Update-Help
+ ~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [Update-Help], Except
   ion
    + FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShe
   ll.Commands.UpdateHelpCommand

Update-Help nécessite un accès Internet pour télécharger le contenu de l’aide. Si votre ordinateur n’a pas d’accès à Internet, utilisez l’applet Save-Help de commande sur un ordinateur disposant d’un accès Internet pour télécharger et enregistrer le contenu d’aide mis à jour. Utilisez ensuite le paramètre SourcePath pour spécifier l’emplacement du contenu d’aide Update-Help mis à jour enregistré.

Get-Command

Get-Command est une autre commande multi-usage qui vous aide à trouver des commandes. Lorsque vous exécutez Get-Command sans paramètre, elle retourne une liste de toutes les commandes PowerShell sur votre système. Vous pouvez également utiliser Get-Command pour obtenir la syntaxe de commande similaire à Get-Help.

Comment déterminer la syntaxe pour Get-Command? Vous pouvez utiliser Get-Help pour afficher l’article d’aide pour Get-Command, comme indiqué dans la section Get-Help de ce chapitre. Vous pouvez également utiliser Get-Command le paramètre Syntax pour afficher la syntaxe de n’importe quelle commande. Ce raccourci vous aide à déterminer rapidement comment utiliser une commande sans parcourir son contenu d’aide.

Get-Command -Name Get-Command -Syntax

L’utilisation Get-Command avec le paramètre Syntax fournit une vue plus concise de la syntaxe qui affiche les paramètres et leurs types de valeurs, sans répertorier les valeurs autorisées spécifiques comme Get-Help les montres.

Get-Command [[-ArgumentList] <Object[]>] [-Verb <string[]>]
[-Noun <string[]>] [-Module <string[]>]
[-FullyQualifiedModule <ModuleSpecification[]>] [-TotalCount <int>]
[-Syntax] [-ShowCommandInfo] [-All] [-ListImported]
[-ParameterName <string[]>] [-ParameterType <PSTypeName[]>]
[<CommonParameters>]

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

Si vous avez besoin d’informations plus détaillées sur l’utilisation d’une commande, utilisez Get-Help.

help Get-Command -Full

La section SYNTAXE de Get-Help fournit un affichage plus convivial en développant des valeurs énumérées pour les paramètres. Il vous montre les valeurs réelles que vous pouvez utiliser, ce qui facilite la compréhension des options disponibles.

...
    Get-Command [[-Name] <System.String[]>] [[-ArgumentList]
    <System.Object[]>] [-All] [-CommandType {Alias | Function | Filter |
    Cmdlet | ExternalScript | Application | Script | Workflow |
    Configuration | All}] [-FullyQualifiedModule
    <Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
    [-Module <System.String[]>] [-ParameterName <System.String[]>]
    [-ParameterType <System.Management.Automation.PSTypeName[]>]
    [-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>]
    [<CommonParameters>]

    Get-Command [[-ArgumentList] <System.Object[]>] [-All]
    [-FullyQualifiedModule
    <Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
    [-Module <System.String[]>] [-Noun <System.String[]>] [-ParameterName
    <System.String[]>] [-ParameterType
    <System.Management.Automation.PSTypeName[]>] [-ShowCommandInfo]
    [-Syntax] [-TotalCount <System.Int32>] [-Verb <System.String[]>]
    [<CommonParameters>]
...

La section PARAMETERS de l’aide indique Get-Command que les paramètres Nom, Nom et Verbe acceptent des caractères génériques.

...
    -Name <System.String[]>
        Specifies an array of names. This cmdlet gets only commands that
        have the specified name. Enter a name or name pattern. Wildcard
        characters are permitted.

        To get commands that have the same name, use the All parameter. When
        two commands have the same name, by default, `Get-Command` gets the
        command that runs when you type the command name.

        Required?                    false
        Position?                    0
        Default value                None
        Accept pipeline input?       True (ByPropertyName, ByValue)
        Accept wildcard characters?  true

    -Noun <System.String[]>
        Specifies an array of command nouns. This cmdlet gets commands,
        which include cmdlets, functions, and aliases, that have names that
        include the specified noun. Enter one or more nouns or noun
        patterns. Wildcard characters are permitted.

        Required?                    false
        Position?                    named
        Default value                None
        Accept pipeline input?       True (ByPropertyName)
        Accept wildcard characters?  true
    -Verb <System.String[]>
        Specifies an array of command verbs. This cmdlet gets commands,
        which include cmdlets, functions, and aliases, that have names that
        include the specified verb. Enter one or more verbs or verb
        patterns. Wildcard characters are permitted.

        Required?                    false
        Position?                    named
        Default value                None
        Accept pipeline input?       True (ByPropertyName)
        Accept wildcard characters?  true
...

L’exemple suivant utilise le * caractère générique avec la valeur du paramètre Name de Get-Command.

Get-Command -Name *service*

Lorsque vous utilisez des caractères génériques avec le paramètre Name de Get-Command, il retourne des commandes PowerShell et des commandes natives, comme indiqué dans les résultats suivants.


CommandType     Name                                               Version
-----------     ----                                               -------
Function        Get-NetFirewallServiceFilter                       2.0.0.0
Function        Set-NetFirewallServiceFilter                       2.0.0.0
Cmdlet          Get-Service                                        3.1.0.0
Cmdlet          New-Service                                        3.1.0.0
Cmdlet          New-WebServiceProxy                                3.1.0.0
Cmdlet          Restart-Service                                    3.1.0.0
Cmdlet          Resume-Service                                     3.1.0.0
Cmdlet          Set-Service                                        3.1.0.0
Cmdlet          Start-Service                                      3.1.0.0
Cmdlet          Stop-Service                                       3.1.0.0
Cmdlet          Suspend-Service                                    3.1.0.0
Application     SecurityHealthService.exe                          10.0.2...
Application     SensorDataService.exe                              10.0.2...
Application     services.exe                                       10.0.2...
Application     services.msc                                       0.0.0.0
Application     TieringEngineService.exe                           10.0.2...
Application     Windows.WARP.JITService.exe                        10.0.2...

Vous pouvez limiter les résultats des Get-Command commandes PowerShell à l’aide du paramètre CommandType .

Get-Command -Name *service* -CommandType Cmdlet, Function, Alias, Script

Une autre option peut être d’utiliser le paramètre Verb ou Noun ou les deux, car seules les commandes PowerShell ont des verbes et des noms.

L’exemple suivant utilise Get-Command pour rechercher des commandes sur votre ordinateur qui fonctionnent avec des processus. Utilisez le paramètre Noun et spécifiez Process sa valeur.

Get-Command -Noun Process
CommandType     Name                                               Version
-----------     ----                                               -------
Cmdlet          Debug-Process                                      3.1.0.0
Cmdlet          Get-Process                                        3.1.0.0
Cmdlet          Start-Process                                      3.1.0.0
Cmdlet          Stop-Process                                       3.1.0.0
Cmdlet          Wait-Process                                       3.1.0.0

Résumé

Dans ce chapitre, vous avez appris à rechercher des commandes avec Get-Help et Get-Command. Vous avez également appris à utiliser le système d’aide pour comprendre comment utiliser des commandes une fois que vous les avez trouvés. En outre, vous avez appris à mettre à jour le système d’aide sur votre ordinateur lorsque de nouveaux contenus d’aide sont disponibles.

Révision

  1. Le paramètre DisplayName de Get-Service est-il positionnel ?
  2. Combien de jeux de paramètres compte l’applet de commande Get-Process ?
  3. Quelles sont les commandes PowerShell qui peuvent fonctionner avec les journaux des événements ?
  4. Quelle est la commande PowerShell pour renvoyer une liste de processus PowerShell en cours d’exécution sur votre ordinateur ?
  5. Comment mettre à jour le contenu d’aide PowerShell stocké sur votre ordinateur ?

Références

Pour en savoir plus sur les concepts abordés dans ce chapitre, lisez les articles d’aide PowerShell suivants.

Étapes suivantes

Dans le chapitre suivant, vous allez découvrir les objets, les propriétés, les méthodes et l’applet Get-Member de commande.