Qu’est-ce que les scripts Windows PowerShell ?

Points clés à retenir

  • PowerShell est un langage de script qui peut aider à automatiser les tâches informatiques.
  • Les applets de commande sont des commandes Powershell à fonction unique. Vous pouvez afficher les commandes disponibles avec « Get-Command ».
  • PowerShell est disponible sur Windows, macOS et Linux.

PowerShell est un langage de script qui peut vous aider à automatiser des tâches informatiques de manière simple et fiable. Découvrez comment l’utiliser pour commencer à créer des scripts pour votre PC Windows.

Présentation des scripts PowerShell

Pour commencer à créer des scripts PowerShell simples sous Windows, vous devez connaître trois choses :

  • Applets de commande : commandes à fonction unique.
  • Paramètres : spécifiez le quoi, le quand, le où et le comment des applets de commande/commandes.
  • Pipeline : prend la sortie de votre applet de commande et ses paramètres et la connecte à d’autres applets de commande et fonctions.

En combinant les trois, vous pouvez créer des scripts simples pour vous aider à automatiser les tâches.

Voici un exemple de pipeline montrant comment vous pouvez combiner plusieurs applets de commande pour réaliser une tâche :

Pour exécuter ce pipeline dans PowerShell, vous utiliserez quelque chose comme cette commande :

 Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
  | Place-Object Bowl

Applets de commande en détail

Comme tout langage de script, PowerShell est livré avec des commandes prédéfinies pour manipuler des objets et effectuer diverses tâches. Ces commandes fondamentales dans PowerShell sont appelées applets de commande.

  Comment réparer Windows 10 ne montrant pas les vignettes

Les applets de commande (prononcés comme command-lets) sont de petites commandes à fonction unique utilisées dans l’environnement PowerShell à l’aide de l’extension .dll. Ce sont des morceaux de code légers qui s’exécutent plus rapidement que les fonctions en raison de leur nature compilée.

Il existe des milliers d’applets de commande disponibles sur PowerShell. Vous n’avez pas besoin de tous les apprendre. Vous pouvez commencer par apprendre quelques applets de commande PowerShell de base, puis continuer à apprendre tout au long de votre parcours de création de scripts. Pour afficher les applets de commande déjà installées sur votre ordinateur, exécutez :

 Get-Command 

Si vous parcourez les résultats, vous remarquerez qu’ils suivent une convention de dénomination verbe-nom. Cela facilite la compréhension de ce que fait une certaine applet de commande.

Par exemple, Get-Command donne une liste de commandes disponibles dans PowerShell. Get-Process vous récupère les processus actuellement actifs et Copy-Item copie un ou plusieurs fichiers dans un répertoire spécifique.

Les applets de commande sont également fournies avec une documentation complète comprenant des exemples, des instructions d’utilisation et des explications sur leurs fonctionnalités.

Pour en savoir plus sur une applet de commande spécifique et comment l’utiliser, exécutez :

 Get-Help <name-of-cmdlet> 

Paramètres PowerShell expliqués

Les applets de commande peuvent accepter des paramètres pour faire varier leur comportement. Lorsque vous exécutez une applet de commande ou une fonction, vous pouvez fournir des valeurs de paramètres pour spécifier quoi, quand, où et comment chaque commande PowerShell s’exécute.

Par exemple, Get-Process obtiendra une liste de tous les processus actifs au sein de votre système d’exploitation :

Mais que se passe-t-il si vous souhaitez uniquement obtenir un processus spécifique ? Vous pouvez le faire en utilisant des paramètres. Par exemple, pour obtenir tous les processus Slack, vous pouvez utiliser le paramètre Name avec la cmdlet Get-Process :

 Get-Process -Name Slack 

Vous ne verrez alors que les processus portant le nom « slack » :

  Comment réparer une erreur de périphérique USB non reconnue sous Windows 10

Certains paramètres sont « positionnels », ce qui signifie que leur nom est facultatif. Dans ce cas, Get-Process -Name Slack et Get-Process Slack font la même chose.

Chaque applet de commande acceptera différents types de paramètres. Utilisez la commande Get-Help pour afficher les paramètres acceptés d’une applet de commande dans la section SYNTAXE.

 Get-Help Get-Process 

Vous verrez une liste de toutes les manières possibles d’exécuter l’applet de commande donnée :

Dans ce cas, l’applet de commande Get-Process accepte des paramètres tels que Name, Id, ComputerName, Module, FileVersionInfo et d’autres paramètres courants. Les symboles ici signifient :

Symbole

Nom

Signification

Vide

Le paramètre n’accepte pas l’entrée

Trait d’union

Indique le nom du paramètre

<>

Supports coudés

Espace réservé pour le texte

[]

Supports

Paramètre pouvant accepter une ou plusieurs valeurs

{}

Croisillons

Le paramètre accepte un ensemble de valeurs

Les paramètres qui acceptent des entrées indiqueront le type de données dont ils ont besoin, comme une chaîne, un entier, un booléen ou une DateTime. Par exemple, ceci :

 Get-Process [[-Name] <string[]>] 

Signifie que le paramètre Name accepte une ou plusieurs valeurs de chaîne, alors que ceci :

 Get-Process -Id <int[]> 

Signifie que le paramètre Id accepte une ou plusieurs valeurs entières.

L’exemple Get-Process précédent utilisait le paramètre Name pour affiner les résultats. Cependant, si vous souhaitez le limiter à un processus encore plus spécifique, vous pouvez utiliser le paramètre ID, qui nécessite un entier comme indiqué dans sa syntaxe.

 Get-Process -Id 3016 

Vous ne devriez alors voir qu’un seul processus dans la liste :

  Qu'est-ce que gcloud et comment l'installer sur Windows, MacOS et Linux ?

Création d’un pipeline

PowerShell traite toutes les données comme des objets. Pour créer un script, ces objets passent par une série d’applets de commande ou de fonctions reliées par un symbole de barre verticale ( | ). Choisir les bonnes applets de commande et les connecter dans une séquence logique à l’aide du pipeline est crucial pour un script efficace.

Supposons que vous créiez un script pour trier et afficher les cinq fichiers occupant le plus d’espace de stockage dans un dossier. Il existe des moyens plus robustes de créer un script de tri de fichiers, mais la ligne suivante est facile à comprendre :

Pour ce faire dans PowerShell, utilisez un pipeline qui ressemble à ceci :

 Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
 | Select-Object -First 5 | Format-Table Name, Length -AutoSize

Enregistrer le pipeline en tant que script PS1

Maintenant que nous disposons d’un pipeline fonctionnel, vous pouvez l’enregistrer en tant que fichier de script PS1, afin de ne pas avoir à le saisir à chaque fois que vous l’utilisez.

Le moyen le plus simple de créer un fichier PS1 consiste à coller votre script dans le Bloc-notes et à enregistrer le fichier avec l’extension .ps1.

Une fois que vous avez créé votre fichier PS1, vous pouvez l’utiliser dans PowerShell en exécutant ./ScriptName.ps1 :

Toutes nos félicitations! Vous pouvez désormais créer des scripts PowerShell PS1.

PowerShell est également disponible sur Linux et macOS

PowerShell est l’un des meilleurs langages de script pour débutants que l’on puisse apprendre. Bien que PowerShell n’était auparavant limité qu’à Windows, la version mise à jour de PowerShell est désormais également disponible sur macOS et de nombreuses distributions Linux ! Cela rend PowerShell encore plus attrayant car vous pouvez transférer vos connaissances de Windows vers d’autres systèmes d’exploitation.