3.4Ligne de commande / PowerShell
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.
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.🔎 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
- Repérez le verbe et le nom dans Get-Service, New-ADUser, Set-Date, comme Sofiane.
- Devinez ce que feraient Get-EventLog ou Stop-Service, d'après le verbe.
- Composez mentalement : lister → trier → garder les N premiers, avec des pipes.
- Notez une tâche répétitive de votre quotidien qui gagnerait à être automatisée.
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.
- 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.
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.
Que fait le pipeline « | » en PowerShell ?