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 -process
par , 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
- Le paramètre DisplayName de
Get-Service
est-il positionnel ? - Combien de jeux de paramètres compte l’applet de commande
Get-Process
? - Quelles sont les commandes PowerShell qui peuvent fonctionner avec les journaux des événements ?
- Quelle est la commande PowerShell pour renvoyer une liste de processus PowerShell en cours d’exécution sur votre ordinateur ?
- 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.