Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
PowerShell est un interpréteur de commandes et un langage de script en un. PowerShell a démarré sur Windows pour faciliter l’automatisation des tâches d’administration. À présent, il exécute plusieurs plateformes et peut être utilisé pour différentes tâches.
Ce qui rend PowerShell unique est qu’il accepte et retourne des objets .NET, plutôt que du texte. Cette fonctionnalité facilite la connexion de différentes commandes dans un pipeline.
Pour quoi PowerShell peut-il être utilisé ?
Au départ, PowerShell était Windows uniquement. Maintenant, il est multiplateforme et peut être utilisé pour différentes tâches telles que :
- Gestion cloud. PowerShell peut être utilisé pour gérer les ressources cloud. Par exemple, vous pouvez récupérer des informations, mettre à jour ou déployer de nouvelles ressources.
- CI/CD. Il peut également être utilisé dans le cadre d’un pipeline d’intégration continue/de déploiement continu.
- Automatisez les tâches pour Active Directory et Exchange. Vous pouvez l’utiliser pour automatiser presque n’importe quelle tâche sur Windows, comme la création d’utilisateurs dans Active Directory et les boîtes aux lettres dans Exchange.
Qui utilise PowerShell ?
PowerShell est un outil puissant qui peut aider les personnes travaillant dans une multitude de rôles. Traditionnellement, PowerShell a été utilisé par les administrateurs système. Maintenant, il est utilisé par des personnes qui s’appellent DevOps, Cloud Ops, et même les développeurs.
Applets de commande PowerShell
PowerShell est fourni avec des centaines de commandes préinstallées. Les commandes PowerShell sont appelées applets de commande (prononcé command-lets).
Le nom de chaque applet de commande se compose d’une paire Verb-Noun . Par exemple : Get-Process. Cette convention d’affectation de noms facilite la compréhension de ce que fait l’applet de commande. Il facilite également la recherche de la commande que vous recherchez. Lorsque vous recherchez une applet de commande à utiliser, vous pouvez filtrer sur le verbe ou le nom.
Utilisation d’applets de commande pour explorer PowerShell
Lorsque vous prenez PowerShell pour la première fois, il peut se sentir intimidant, car il semble y avoir tellement à apprendre. PowerShell est conçu pour vous aider à apprendre un peu à la fois, car vous en avez besoin.
PowerShell inclut des applets de commande qui vous aident à découvrir PowerShell. À l’aide de ces trois applets de commande, vous pouvez découvrir les commandes disponibles, ce qu’elles font et les types sur lesquels ils fonctionnent.
-
Get-Verb. L’exécution de cette commande retourne une liste de verbes auxquels la plupart des commandes adhèrent. La réponse inclut une description de ce que font ces verbes. Étant donné que la plupart des commandes suivent cette convention d’affectation de noms, elle définit les attentes sur ce qu’une commande fait. Cette commande vous aide à sélectionner le verbe approprié et à nommer une commande lorsque vous créez vos propres commandes. -
Get-Command. Cette commande récupère la liste de toutes les commandes installées sur votre ordinateur. -
Get-Member. Il fonctionne sur la sortie basée sur l’objet et est en mesure de découvrir quels objets, propriétés et méthodes sont disponibles pour une commande. -
Get-Help. L’appel de cette commande avec le nom d’une commande en tant qu’argument affiche une page d’aide décrivant différentes parties d’une commande.
À l’aide de ces commandes, vous pouvez découvrir presque tout ce dont vous avez besoin pour connaître PowerShell.
Verbe
Le verbe est un concept important dans PowerShell. Il s’agit d’une norme de nommage que la plupart des applets de commande suivent. Il s’agit également d’une norme de nommage que vous êtes censé suivre lorsque vous écrivez vos propres commandes. L’idée est que le verbe indique ce que vous essayez de faire, comme lire ou peut-être modifier des données. PowerShell a une liste standardisée de verbes. Pour obtenir la liste complète de tous les verbes possibles, utilisez l’applet Get-Verb de commande :
Get-Verb
L’applet de commande retourne une longue liste de verbes. La description fournit un contexte pour ce que le verbe est destiné à faire. Voici les premières lignes de sortie :
Verb AliasPrefix Group Description
---- ----------- ----- -----------
Add a Common Adds a resource to a container, or attaches an item to another item
Clear cl Common Removes all the resources from a container but does not delete the container
Close cs Common Changes the state of a resource to make it inaccessible, unavailable, or unusab…
Copy cp Common Copies a resource to another name or to another container
Enter et Common Specifies an action that allows the user to move into a resource
Exit ex Common Sets the current environment or context to the most recently used context
...
Rechercher des commandes avec Get-Command
L’applet Get-Command de commande retourne la liste de toutes les commandes disponibles installées sur votre système. La liste peut être volumineuse. Vous pouvez limiter la quantité d’informations qui reviennent en filtrant la réponse à l’aide de paramètres ou d’applets de commande d’assistance.
Filtrer sur le nom
Vous pouvez filtrer la sortie de l’utilisation de Get-Command différents paramètres. Le filtrage vous permet de rechercher des commandes qui ont certaines propriétés. Le paramètre Name vous permet de trouver une commande spécifique par nom.
Get-Command -Name Get-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
Que se passe-t-il si vous souhaitez trouver toutes les commandes qui fonctionnent avec des processus ? Vous pouvez utiliser un caractère générique * pour faire correspondre d’autres formes de la chaîne. Par exemple:
Get-Command -Name *-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Management
Filtrage sur le nom et le verbe
Il existe d’autres paramètres qui filtrent sur les valeurs de verbe et de nom. La partie verbe du nom d’une commande est la partie la plus à gauche. Le verbe doit être l’une des valeurs retournées par l’applet Get-Verb de commande. La partie la plus à droite d’une commande est la partie nom. Un nom peut être quelque chose.
Filtrez sur le verbe. Dans la commande
Get-Process, la partie verbe estGet. Pour filtrer la partie verbe, utilisez le paramètre Verb .Get-Command -Verb 'Get'Cet exemple répertorie toutes les commandes qui utilisent le verbe
Get.Filtrez sur le nom. Dans la commande
Get-Process, la partie nom estProcess. Pour filtrer sur le nom, utilisez le paramètre Nom . L’exemple suivant retourne toutes les applets de commande qui ont des noms commençant par la lettreU.Get-Command -Noun U*
En outre, vous pouvez combiner des paramètres pour affiner votre recherche, par exemple :
Get-Command -Verb Get -Noun U*
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-UICulture 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Unique 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Uptime 7.0.0.0 Microsoft.PowerShell.Utility
Utiliser des applets de commande d’assistance pour filtrer les résultats
Vous pouvez également utiliser d’autres applets de commande pour filtrer les résultats.
Select-Object. Cette commande polyvalente vous permet de sélectionner des propriétés spécifiques à partir d’un ou plusieurs objets. Vous pouvez également limiter le nombre d’éléments que vous récupérez. L’exemple suivant retourne les valeurs de propriété Name et Source pour les 5 premières commandes disponibles dans la session active.Get-Command | Select-Object -First 5 -Property Name, SourceName Source ---- ------ Add-AppPackage Appx Add-AppPackageVolume Appx Add-AppProvisionedPackage Dism Add-AssertionOperator Pester Add-ProvisionedAppPackage DismPour plus d’informations, consultez Select-Object.
Where-Object. Cette applet de commande vous permet de filtrer les objets retournés en fonction des valeurs des propriétés. La commande prend une expression qui peut tester la valeur d’une propriété. L’exemple suivant retourne tous les processus avec lesquelspcommencentProcessName.Get-Process | Where-Object {$_.ProcessName -like "p*"}L’applet
Get-Processde commande retourne une collection d’objets de processus. Pour filtrer la réponse, dirigez la sortie versWhere-Object. Le piping signifie que deux commandes ou plus sont connectées via un caractère de canal|. La sortie d’une commande est envoyée en tant qu’entrée pour la commande suivante. Expression de filtre pourWhere-Objectutiliser l’opérateur-likepour faire correspondre les processus qui commencent par la lettrep.
Explorer des objets avec Get-Member
Une fois que vous avez trouvé l’applet de commande souhaitée, vous souhaitez en savoir plus sur la sortie qu’elle produit. L’applet Get-Member de commande affiche le type, les propriétés et les méthodes d’un objet. Diriger la sortie vers Get-Memberlaquelle vous souhaitez effectuer l’inspection .
Get-Process | Get-Member
Le résultat affiche le type retourné sous la forme TypeName et toutes les propriétés et méthodes de l’objet. Voici un extrait de ce résultat :
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
Name AliasProperty Name = ProcessName
...
À l’aide du paramètre MemberType , vous pouvez limiter les informations retournées.
Get-Process | Get-Member -MemberType Method
Par défaut, PowerShell affiche uniquement quelques propriétés. L’exemple précédent a affiché les membres MemberTypeet Definition les Namemembres. Vous pouvez utiliser Select-Object pour spécifier les propriétés que vous souhaitez voir. Par exemple, vous souhaitez afficher uniquement les propriétés et Definition les Name propriétés :
Get-Process | Get-Member | Select-Object Name, Definition
Rechercher par type de paramètre
Get-Member nous a montré qu’il Get-Process retourne des objets de type Process . Le paramètre ParameterType de Get-Command peut être utilisé pour rechercher d’autres commandes qui prennent les objets Process comme entrée.
Get-Command -ParameterType Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Enter-PSHostProcess 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Get-PSHostProcessInfo 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Connaître le type de sortie d’une commande peut vous aider à affiner votre recherche pour les commandes associées.