3.4 · Ligne de commande / PowerShell

Niveau 3 · Administration systèmes

3.4Ligne de commande / PowerShell

Objectif : Comprendre la logique de PowerShell (cmdlets verbe-nom, pipeline) et pourquoi automatiser.
Temps estimé : 12 min · lecture autonome · Si vous n'avez que 5 min : lisez « L'essentiel en 30s » + le schéma.

L'essentiel en 30 secondes

  • La ligne de commande, et surtout PowerShell, permet d'automatiser : une tâche répétitive devient un script reproductible.
  • Les cmdlets suivent le format Verbe-Nom (Get-, Set-, New-…) : cette régularité rend le langage prévisible.
  • Le pipeline (|) transmet des objets structurés d'une commande à la suivante, pas du texte brut ; on teste en lecture (Get-) avant d'agir.

Mini-cas filé — Sofiane automatise une tâche répétitive

Sofiane, administrateur systèmes dans une PME de distribution à Alger, doit chaque semaine repérer les postes les plus chargés en mémoire. Le faire à la souris, poste par poste, lui prend une éternité. Il ouvre PowerShell et compose une seule ligne : Get-Process | Sort-Object WS -Descending | Select-Object -First 5. Il lit la ligne comme une phrase : lister les processus, les trier par mémoire, garder les cinq premiers. Il comprend la logique Verbe-Nom des cmdlets et le pipeline qui transmet des objets. Il note le réflexe : tester en lecture (Get-) avant d'agir (Set- ou Remove-), et automatiser ce qui est répétitif.

Cas autonome de cette section : il revient dans le cours, le schéma, le script et le défi 48h de la section 3.4.

1. Pourquoi la ligne de commande

Cliquer convient pour une action ponctuelle ; répéter la même action des dizaines de fois à la souris devient absurde. La ligne de commande, et surtout PowerShell sous Windows, permet d'automatiser : créer 50 comptes, exporter une liste, appliquer un réglage partout — en quelques lignes reproductibles. Sofiane transforme les corvées répétitives en scripts qu'il rejoue à l'identique.

2. La logique verbe-nom

PowerShell repose sur des cmdlets nommées Verbe-Nom : Get-Process, Get-Service, New-ADUser, Set-Date. Cette régularité rend le langage prévisible : si Get- lit et Set- modifie, on devine des commandes qu'on n'a jamais vues. Les paramètres précisent l'action (-Name, -Path).

3. Le pipeline : des objets, pas du texte

La force de PowerShell est le pipeline (|) qui passe le résultat d'une commande à la suivante — et, contrairement aux anciens shells, ce sont des objets structurés, pas du texte brut. On enchaîne ainsi lecture, tri et action : lister, trier, ne garder que le pertinent, agir. Sofiane voit dans cette composition la vraie puissance de l'outil.

Erreur d'interprétation fréquente : « La ligne de commande, c'est pour les experts ; on peut lancer une commande destructive directement, sans test ; et copier un script trouvé en ligne suffit à automatiser ». Non, triple erreur. On commence par des commandes simples (Get-…) et la logique Verbe-Nom s'apprend vite. Une cmdlet Set- ou Remove- modifie réellement le système : on teste d'abord en lecture avant d'agir. Et un script copié sans le comprendre est un risque : on automatise ce qui est répétitif et déjà maîtrisé à la main. Sofiane lit toujours avant d'appuyer sur Entrée.
L'anatomie d'une commande PowerShell Cmdlet Verbe-Nom, paramètres, puis pipeline qui transmet des objets à la commande suivante. Verbe-Nom (cmdlet)Paramètres -Name -PathPipeline () objets transmisRésultat objetsstructurés
Cmdlet Verbe-Nom, paramètres, puis pipeline qui transmet des objets à la commande suivante.
Version texte du schéma (SEO / lecteurs d'écran / traduction) : 1) Sofiane, administrateur systèmes dans une PME de distribution à Alger, en a assez de répéter les mêmes clics : il découvre que PowerShell automatise chaque tâche répétitive en quelques lignes reproductibles. 2) Il retient la logique Verbe-Nom des cmdlets (Get- lit, Set- modifie) et le rôle des paramètres, puis il comprend le pipeline qui transmet des objets structurés d'une commande à la suivante. 3) Pour lister les gros processus, il compose Get-Process | Sort-Object WS -Descending | Select-Object -First 5, qu'il lit comme lister → trier → garder. Il note le réflexe : tester en lecture (Get-) avant d'agir (Set-/Remove-) et automatiser ce qui est répétitif et déjà maîtrisé. Leçon : composer des cmdlets plutôt que cliquer, et toujours vérifier avant d'agir.

🔎 Exemple concret — 🔎 Exemple concret — Lister les gros processus, proprement

Trouver les 5 processus qui consomment le plus de mémoire, comme Sofiane :

Get-Process | Sort-Object WS -Descending | Select-Object -First 5

# Get-Process   -> liste les processus (objets)
# Sort-Object   -> trie par memoire (WS)
# Select-Object -> garde les 5 premiers

Lecture : chaque « | » passe des objets à l'étape suivante ; on compose la réponse.

Leçon : une ligne remplace un long clic-à-clic, et se rejoue à l'identique.

Vocabulaire de la section

PowerShell
Shell et langage d'automatisation de Windows, orienté objets.

Exemple simple : Sofiane automatise une tâche répétitive en une ligne.

Ce que ce n'est pas : une simple fenêtre de navigation de fichiers.

Réflexe : automatiser Windows → PowerShell.

Cmdlet
Commande PowerShell au format Verbe-Nom (ex. Get-Service).

Exemple simple : Get-Process est une cmdlet qui liste les processus.

Ce que ce n'est pas : un fichier exécutable graphique.

Réflexe : commande PowerShell → cmdlet.

Paramètre
Option qui précise une cmdlet (ex. -Name, -Path).

Exemple simple : Sofiane ajoute -Descending pour trier à l'envers.

Ce que ce n'est pas : une valeur tapée dans un formulaire.

Réflexe : préciser une action → un paramètre.

Pipeline (|)
Mécanisme qui transmet le résultat d'une commande à la suivante.

Exemple simple : Sofiane enchaîne Get-Process | Sort-Object | Select-Object.

Ce que ce n'est pas : un copier-coller manuel entre deux commandes.

Réflexe : enchaîner des cmdlets → le pipeline.

Automatisation
Remplacer une tâche manuelle répétitive par un script reproductible.

Exemple simple : Sofiane rejoue la même ligne chaque semaine.

Ce que ce n'est pas : refaire chaque fois les clics à la main.

Réflexe : tâche répétitive → un script.

En pratique — En pratique — Lire et composer des commandes

  1. Repérez le verbe et le nom dans Get-Service, New-ADUser, Set-Date, comme Sofiane.
  2. Devinez ce que feraient Get-EventLog ou Stop-Service, d'après le verbe.
  3. Composez mentalement : lister → trier → garder les N premiers, avec des pipes.
  4. Notez une tâche répétitive de votre quotidien qui gagnerait à être automatisée.
Vous lisez la logique verbe-nom, comprenez le pipeline et repérez ce qui mérite un script.

Script pas-à-pas — composer une ligne comme Sofiane (4 min)

1) Repérez le verbe et le nom de la cmdlet (ex. Get-Process). 2) Ajoutez les paramètres utiles (ex. -Descending). 3) Enchaînez avec un autre cmdlet via le pipe (|). 4) Terminez par l'action voulue (ex. Select-Object -First 5). 5) Testez d'abord en lecture (Get-) avant toute action modifiante.

Gardez cette ligne : la même recette s'applique pour trier, filtrer et extraire n'importe quelle liste d'objets.

Modèle copier-coller — ma première ligne PowerShell

Get-Process | Sort-Object WS -Descending | Select-Object -First 5

Verbe-Nom  : Get- lit / Set- modifie / New- cree / Remove- supprime
Parametres : -Name, -Path, -Descending...
Pipeline   : | transmet des OBJETS, pas du texte
Reflexe    : tester en lecture (Get-) avant d'agir

Lister les services

Sofiane lance Get-Service pour voir l'état des services d'un serveur.

Trier par mémoire

Sofiane enchaîne Sort-Object WS -Descending pour repérer les gros consommateurs.

Créer un compte

Sofiane devine New-ADUser d'après le verbe New- : le format Verbe-Nom rend le langage prévisible.

Tester avant d'agir

Avant tout Remove-, Sofiane liste d'abord avec un Get- pour vérifier qu'il cible les bons objets.

✓ Bonnes pratiques

  • Retenir la logique Verbe-Nom pour deviner les cmdlets.
  • Tester une commande en lecture (Get-) avant d'agir (Set-/Remove-).
  • Automatiser ce qui est répétitif et déjà maîtrisé à la main.

✗ Pièges fréquents

  • Lancer une commande destructive sans l'avoir testée en lecture.
  • Copier un script trouvé en ligne sans le comprendre.
  • Automatiser une tâche mal maîtrisée manuellement.

Points clés à retenir

  • PowerShell sert à administrer et automatiser sous Windows.
  • Les cmdlets suivent le format Verbe-Nom, précisé par des paramètres.
  • Le pipeline (|) enchaîne des objets structurés, pas du texte.
  • On teste en lecture (Get-) avant d'agir, et on automatise le répétitif.

Défi 48h — appliquez demain

Comme Sofiane, ouvrez PowerShell et composez une ligne avec un pipeline : listez des objets (ex. Get-Process), triez-les, puis gardez seulement les premiers. Écrivez ensuite, en une phrase, quelle tâche répétitive de votre quotidien mériterait un script — et pourquoi on teste en lecture avant d'agir.

Checklist sortie de section
  • Je peux expliquer la logique Verbe-Nom des cmdlets.
  • Je comprends ce que fait le pipeline (|) avec des objets.
  • Je sais pourquoi on teste en lecture avant d'agir.
Auto-évaluation 1-5 : est-ce que je devine une cmdlet d'après son verbe ?Auto-évaluation 1-5 : pensé-je à tester en lecture avant une commande d'action ?

Questions fréquentes

Faut-il être développeur pour utiliser PowerShell ?

Non : on commence par des commandes simples (Get-…) pour lire l'état d'un système, puis on compose progressivement. La logique verbe-nom et le pipeline s'apprennent vite ; le vrai risque n'est pas la difficulté mais les commandes destructives lancées sans test.

Pourquoi tester en lecture avant d'agir ?

Parce qu'une cmdlet Remove- ou Set- modifie réellement le système. On liste d'abord (Get-) pour vérifier qu'on cible les bons objets, puis on agit — cela évite d'effacer ou de modifier ce qu'il ne fallait pas.

Vérifiez votre compréhension

Que fait le pipeline « | » en PowerShell ?

Ressources supplémentaires (optionnel, pour aller plus loin)

Examen du niveau 3Questions inédites et durcies pour valider vos acquis