PowerShell sous Windows : guide d'installation et utilisations pratiques

PowerShell sous Windows : guide d'installation et utilisations pratiques

Comment utiliser PowerShell pour simplifier votre quotidien sous Windows

Si vous travaillez sur un ordinateur Windows plus de quelques minutes par semaine, PowerShell est l'outil que vous ignorez probablement. Lancé par Microsoft en novembre 2006, alors qu'il s'appelait encore Monad, ce shell de ligne de commande automatise les tâches sur les systèmes Windows depuis deux décennies et depuis 2018, il est également multiplateforme, avec des versions pour Linux et macOS.

D'ici août 2026, votre la dernière version stable est la 7.6.4sorti le 20 juillet, construit sur .NET 10 et devenant ainsi l'un des outils Windows les plus puissants, tant pour les utilisateurs courants que pour les développeurs.

Qu’est-ce que PowerShell et pourquoi bat-il l’invite de commande ?

PowerShell est un shell de tâches et un langage de script construits sur .NET. Son idée centrale, formulée dans le Manifeste de la monade qui a précédé la version 1.0, consiste à traiter la ligne de commande non pas comme un flux de texte, mais comme un flux de objets. Alors que l'invite de commande classique (CMD) échange des chaînes de texte qui doivent être analysées manuellement, les commandes PowerShell, appelées applets de commande, Ils renvoient des objets .NET avec des propriétés et des méthodes accessibles.

Cette différence n’est pas seulement esthétique. Lorsque vous courez par exemple, Get-Process, Pour répertorier les processus en cours d'exécution, vous n'obtenez pas un tableau de texte mort : vous obtenez une collection d'objets de processus que vous pouvez filtrer, trier et chaîner avec d'autres commandes sans écrire une seule expression régulière. Il pipeline (|) transmet des objets, pas du texte, transformant des tâches complexes en une seule ligne lisible. Par exemple, cette ligne répertorie les cinq processus qui consomment le plus de mémoire :

Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 5 Name, WorkingSet64

À cela s’ajoutent les fournisseursqui vous permettent de naviguer dans les ressources système comme s'il s'agissait de lecteurs de disque. HKLM:, Env: soit Cert: sont explorés avec le même Get-ChildItem soit Set-Item avec lequel vous naviguez C:. Avec eux, des éléments tels que le registre Windows, les variables d'environnement et les certificats ne sont plus un territoire interdit, tout peut être géré à l'aide de PowerShell.

Comment installer PowerShell 7 sur Windows ?

Windows 11 inclut déjà Windows PowerShell 5.1 prêt à l'emploi, mais pour profiter des avantages de la branche moderne, vous devez installer PowerShell 7. La méthode recommandée par Microsoft pour les PC est ailele gestionnaire de packages intégré à Windows 11 et Windows Server 2025, dans le cadre du programme d'installation de l'application (App Installer).

Son utilisation est très simple, il suffit d'ouvrir une fenêtre Windows PowerShell (ou CMD) et d'exécuter :

winget install --id Microsoft.PowerShell --source winget

Depuis la version 7.6.0, winget installe le package MSIX par défaut. Mais si vous préférez le programme d'installation MSI classique, par exemple dans les environnements d'entreprise ou de serveur, utilisez :

winget install --id Microsoft.PowerShell --source winget --installer-type wix

Une fois installé, exécutez-le avec la commande pwsh. Cela vaut la peine de le différencier de powershell.exequi invoque toujours la version 5.1 incluse avec le système.

Autres versions

Il existe d'autres voies d'installation selon le scénario. Il Forfait MSI téléchargeable depuis GitHub est l’option privilégiée pour les serveurs Windows et les déploiements d’entreprise.

Il MSIXégalement installable depuis le Microsoft Store, est le plus simple pour les utilisateurs occasionnels. Il FERMETURE ÉCLAIR vous permet de télécharger des versions portables. Et les développeurs .NET peuvent l'installer comme un outil global avec dotnet tool install --global PowerShell. Les trois premières options sont résumées dans le tableau :

MéthodeQuand l'utiliser
aileUtilisateurs de Windows 11/10 – recommandé
MSIServeurs et déploiements d'entreprise
MSIX/Microsoft StoreUtilisateurs occasionnels
FERMETURE ÉCLAIROrdinateur portable, plusieurs versions, ARM

Pourquoi est-ce confortable pour l’utilisateur d’ordinateur de bureau ?

Maintenant, vous pensez probablement que PowerShell est un outil réservé aux développeurs, mais la réalité est que les utilisateurs d'ordinateurs de bureau peuvent également en bénéficier. Après tout, PowerShell offre deux avantages immédiats : tâches de gestion sur une seule ligne et un assistant d'installation d'application intégré.

Les tâches telles que la navigation dans le système, la vérification de l'état de l'ordinateur ou le diagnostic des problèmes sont des tâches qui nécessitent plusieurs clics et fenêtres dans le navigateur ou les panneaux de configuration. En PowerShell, quelques mots suffisent, et vous pouvez même programmer. Par exemple, pour connaître la quantité de mémoire disponible, il vous suffit de taper :

Get-CimInstance Win32_OperatingSystem | Select-Object FreePhysicalMemory, TotalVisibleMemorySize

Ou vous pouvez créer une fonction :

function Get-RAM { Get-CimInstance Win32_OperatingSystem | Select-Object FreePhysicalMemory, TotalVisibleMemorySize }

Et maintenant, simplement en utilisant Get-RAM Vous pourrez connaître la mémoire RAM libre de votre système.

Si, par exemple, vous souhaitez lister les services arrêtés sur votre système, quelque chose qui dans le gestionnaire de services implique un filtrage manuel :

Get-Service | Where-Object Status -eq 'Stopped' | Select-Object Name, DisplayName

Ou vous pouvez l'écrire de cette façon :

function List-Stopped-Proc { Get-Service | Where-Object Status -eq 'Stopped' | Select-Object Name, DisplayName }

Et puis utilisez-le uniquement en exécutant List-Stopped-Proc.

Certes, cela sert à simplifier l'administration du système, comme c'est le cas sous Linux ou MacOS, deux systèmes où le shell de commande est étroitement intégré et permet également d'effectuer ce type de tâche très facilement.

Pourquoi est-ce utile pour le développeur ?

Pour les développeurs, PowerShell constitue le ciment entre le système d’exploitation et ses outils. Il est utilisé pour automatiser le provisionnement des machines, gérer les variables d'environnement, appeler des outils de construction, exécuter des tâches d'intégration et orchestrer des environnements de développement complets, sans oublier qu'il est le moteur derrière des outils tels que les actions GitHub lorsqu'ils sont exécutés sur des exécuteurs Windows et les flux de déploiement Azure DevOps.

A cela il faut ajouter que l'écosystème de modules élargit le shell sans limites. Microsoft publie des modules officiels pour Azure (Az), Gestion Office 365, SQL Server, AWS (AWSPowerShell.NetCore) et des dizaines d'autres services, installables depuis la galerie de modules. Dans PowerShell 7.6, la gestion des modules est effectuée par PSResourceGet 1.2.0qui a remplacé le vétéran Install-Module et apporte des améliorations en matière de performances et de gestion des dépendances.

Une fonctionnalité particulièrement intéressante est que PowerShell peut appeler à la fois des outils Windows natifs et, via WSL, des outils Linux. Cela fait du shell un point de contrôle unique pour un flux de travail mixte : vous éditez sous Windows, compilez avec les chaînes d'outils Linux et automatisez tout à partir du même script.

Exemple pratique 1 : installer des applications avec Winget

Winget, le gestionnaire de packages Windows, est mieux géré à partir de PowerShell et transforme l'installation du logiciel en une opération reproductible et vérifiable. Au lieu de télécharger des programmes d'installation depuis chaque site Web et d'accepter assistant par assistant, vous écrivez une ligne.

Pour rechercher une application :

winget search git

Pour installer un package spécifique, en indiquant l'identifiant exact :

winget install --id Git.Git --source winget

Le système vérifie le hachage du programme d'installation avant de l'exécuter (une garantie d'intégrité que le téléchargement manuel n'offre pas) et gère les mises à jour ultérieures de manière centralisée :

winget upgrade --all

Le vrai pouvoir vient lorsqu’il est combiné avec le langage PowerShell. Pour installer l'ensemble d'outils habituel pour un nouvel ordinateur en une seule commande :

$apps = @('Microsoft.VisualStudioCode', 'Git.Git', '7zip.7zip', 'VideoLAN.VLC')
foreach ($app in $apps) { winget install --id $app --accept-source-agreements --accept-package-agreements }

Vous pouvez même générer une liste d'installation à partir d'un ordinateur de référence et la reproduire sur d'autres ordinateurs, faisant de PowerShell + winget un remplacement léger des images système personnalisées. Il s'agit du moyen le plus pratique d'utiliser Windows en tant qu'utilisateur d'ordinateur de bureau : moins de clics, moins d'installateurs inutiles et un inventaire clair de ce qui est installé (winget list).

Si vous souhaitez une liste complète des applications que vous pouvez installer avec ce système, vous pouvez consulter le site Web Winstalleroù vous avez des applications qui peuvent être installées de cette façon.

Exemple pratique 2 : préparer un environnement de développement avec WSL2

WSL (Windows Subsystem for Linux) vous permet d'exécuter un véritable noyau Linux dans Windows, sans la surcharge d'une machine virtuelle traditionnelle. Avec WSL2, l'architecture par défaut à partir de 2020, vous bénéficiez d'une prise en charge complète des appels système Linux, ce qui signifie que les chaînes d'outils Node.js, Python, Docker et Linux fonctionnent immédiatement. Et le meilleur : l'ensemble du processus d'installation est contrôlé depuis PowerShell.

La commande pour installer WSL2 et une distribution Ubuntu par défaut est :

wsl --install

Nécessite Windows 10 version 2004 (build 19041) ou version ultérieure, ou Windows 11. La commande active les composants facultatifs WSL et Virtual Machine Platform, télécharge et installe le noyau Linux, définit WSL2 comme version par défaut et installe Ubuntu. Le système peut demander à redémarrer.

Si vous préférez une autre distribution, consultez d'abord celles disponibles :

wsl --list --online

Et l'élu est installé :

wsl --install -d Debian

Après redémarrage et création de l'utilisateur Linux, l'état est vérifié avec :

wsl --list --verbose

Installer et utiliser Linux sur Windows avec PowerShell

Vient maintenant la partie qui change la journée pour les développeurs. Avec le système Linux dans Windows, vous pouvez mettre à jour et installer des outils directement dans Ubuntu à partir de PowerShell. Vous entrez d’abord la distribution :

wsl -d Ubuntu

Et à l'intérieur, les packages sont mis à jour et les outils de développement sont installés :

sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential curl git
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt install -y nodejs

Mais la plus grande magie est l'interopérabilité : les commandes Linux peuvent être exécutées depuis PowerShell sans passer par Ubuntu. Ces trois lignes, lancées depuis pwshmontrez comment le shell unifie les deux mondes :

wsl node --version
wsl -e sh -c "git clone https://github.com/ejemplo/proyecto.git && cd proyecto && npm install"
wsl docker --version

Pour un travail pratique, Windows Terminal (inclus dans Windows 11) affiche des onglets pour PowerShell et chaque distribution WSL, ainsi que Visual Studio Code avec l'extension WSL connecte l'éditeur au système de fichiers Linux distant. Le résultat est un environnement de développement complet avec l'outil adapté à chaque tâche : la ligne de commande Linux pour la compilation et l'exécution, et PowerShell pour la gestion du système Windows qui le supporte.

Voir l’article original en espagnol