Quelle est la différence entre PowerShell et l’invite de commande ?

10 juillet 2026 · · 4 min de lecture

Sous Windows, il existe deux façons de taper des commandes au lieu de cliquer partout : l’invite de commande (CMD) et PowerShell. Beaucoup de monde les confond ou pense que c’est juste la même chose avec un habillage différent. Spoiler : pas vraiment.

Deux outils, deux générations

CMD, c’est l’ancien, l’interface système historique héritée du bon vieux MS-DOS. PowerShell, lui, est arrivé bien plus tard et a été pensé dès le départ pour l’administration système moderne. La commande dir fonctionne pareil dans les deux, ce qui entretient l’illusion qu’ils se valent, mais dès qu’on va un peu plus loin, l’écart devient évident.

La vraie différence : le texte contre les objets

C’est là que se joue tout. CMD ne manipule que du texte brut : chaque commande renvoie une suite de caractères, un point c’est tout. PowerShell fonctionne avec des objets, un peu comme un vrai langage de programmation. Chaque commande (qu’on appelle une cmdlet) renvoie un objet structuré, avec ses propriétés et ses méthodes, qu’on peut ensuite manipuler, filtrer ou transmettre à la commande suivante.

Concrètement, ça veut dire que PowerShell permet d’enchaîner des commandes bien plus complexes via son système de pipeline, alors que CMD se contente de faire circuler du texte d’une commande à l’autre, ce qui limite fortement ce qu’on peut en faire.

Ce que PowerShell apporte en plus

Plusieurs points font vraiment la différence au quotidien :

  • Le scripting avancé : des vraies fonctions, des boucles et des conditions, là où CMD se limite à des fichiers batch assez basiques.
  • La gestion des erreurs avec un système structuré (try, catch, finally), contre un simple niveau d’erreur côté CMD, nettement moins pratique.
  • La compatibilité multiplateforme : PowerShell Core fonctionne aussi bien sous Windows que sous Linux ou macOS, alors que CMD reste enfermé dans Windows.
  • La gestion à distance, très pratique pour administrer plusieurs machines en même temps.
  • L’intégration cloud, avec des cmdlets pensées pour Azure, Microsoft 365 ou Active Directory.

Pourquoi CMD reste quand même utile

Ce serait exagéré de dire que CMD est complètement dépassé. Sa simplicité en fait un bon choix pour des tâches basiques de navigation ou de gestion de fichiers, et il reste très utilisé pour les diagnostics réseau rapides, avec des commandes bien connues comme ping, ipconfig ou tracert. CMD garde aussi son utilité dans les environnements de récupération Windows, quand le système ne démarre plus correctement, ou pour faire tourner certains scripts et applications hérités qui n’ont jamais été migrés vers PowerShell.

Un exemple concret pour bien voir la différence

Créer un utilisateur local n’a rien à voir selon l’outil utilisé.

En CMD, ça donne quelque chose comme net user John.Doe Password123 /add.

En PowerShell, la syntaxe suit une logique verbe-nom bien plus lisible : New-LocalUser -Name "John.Doe" -Password (...) -FullName "John Doe".

Cette logique verbe-nom (comme Get-ChildItem ou Copy-Item) rend PowerShell plus facile à comprendre une fois qu’on a saisi le principe, même si la courbe d’apprentissage est un peu plus raide au départ que pour CMD.

Alors, lequel choisir ?

Pour des tâches ponctuelles et simples, comme lister un dossier ou copier un fichier, CMD fait très bien le travail et reste plus rapide à prendre en main pour un débutant. Mais dès qu’il s’agit d’automatiser des tâches répétitives, de gérer plusieurs machines à distance, ou de travailler avec le cloud, PowerShell devient largement plus pertinent, au point que Microsoft en a fait son outil par défaut depuis plusieurs versions de Windows.

Dans les faits, la plupart des administrateurs système finissent par utiliser PowerShell au quotidien tout en gardant CMD sous le coude pour les dépannages rapides ou les vieux scripts qui n’ont jamais été migrés.

Retour en haut