Installation de PowerShell sur Windows

Il existe plusieurs façons d’installer PowerShell Core sur Windows. Chaque méthode d’installation est conçue pour prendre en charge différents scénarios et flux de travail. Choisissez la méthode correspondant le mieux à vos besoins.

  • Winget - Méthode recommandée pour installer PowerShell sur les clients Windows
  • Package MSI - Meilleur choix pour les scénarios de déploiement de serveurs Windows et d’entreprise
  • Package ZIP - Moyen le plus simple d’effectuer un « chargement indépendant » ou d’installer plusieurs versions
    • Utilisez cette méthode pour les systèmes Windows Nano Server, Windows IoT et ARM.
  • Outil Global .NET - Un bon choix pour les développeurs .NET qui installent et utilisent d’autres outils globaux.
  • Package Microsoft Store - Une méthode d’installation simple pour les utilisateurs occasionnels de PowerShell, mais qui a des limitations.

Notes

Les commandes d’installation de cet article concernent les dernières versions stables de PowerShell. Pour installer une autre version de PowerShell, adaptez la commande à la version dont vous avez besoin. Les liens suivants vous dirigent vers la page de publication de chaque version dans le référentiel PowerShell sur GitHub.

Les liens de téléchargement pour chaque package se trouvent dans la section Ressources de la page Version. Il est possible que la section Ressources soit réduite et que vous deviez cliquer dessus pour la développer.

Winget, le gestionnaire de package Windows, est un outil en ligne de commande qui permet aux utilisateurs de découvrir, installer, mettre à niveau, supprimer et configurer des applications sur des ordinateurs clients Windows. Cet outil est l’interface cliente du service Gestionnaire de package Windows. L’outil en ligne de commande winget est fourni par défaut en bundle avec Windows 11 et les versions modernes de Windows 10 en tant que programme d’installation d’application.

Notes

Pour obtenir la liste des exigences système et des instructions d’installation, consultez la documentation winget. Winget ne s’exécute actuellement pas sur les serveurs Windows.

Les commandes suivantes peuvent être utilisées pour installer PowerShell à l’aide des packages winget publiés :

Rechercher la version la plus récente de PowerShell

winget search Microsoft.PowerShell
Name               Id                           Version   Source
-----------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.4.2.0   winget
PowerShell Preview Microsoft.PowerShell.Preview 7.5.0.2   winget

Installer PowerShell ou PowerShell en préversion à l’aide du paramètre id

winget install --id Microsoft.Powershell --source winget
winget install --id Microsoft.Powershell.Preview --source winget

Notes

Sur les systèmes Windows utilisant un processeur X86 ou X64, winget installe le package MSI. Sur les systèmes utilisant le processeur Arm64, winget installe le package Microsoft Store (MSIX). Pour plus d’informations, consultez Installation à partir du Microsoft Store.

Installation du package MSI

Pour installer PowerShell sur Windows, utilisez les liens suivants pour télécharger le package d’installation depuis GitHub.

Une fois le package téléchargé, double-cliquez sur le fichier du programme d’installation et suivez les invites.

Le programme d’installation crée un raccourci dans le menu Démarrer de Windows.

  • Par défaut, le package est installé dans $env:ProgramFiles\PowerShell\<version>
  • Vous pouvez lancer PowerShell via le menu Démarrer ou $env:ProgramFiles\PowerShell\<version>\pwsh.exe

Remarque

PowerShell 7.4 s’installe dans un nouveau répertoire et s’exécute côte à côte avec Windows PowerShell 5.1. PowerShell 7.4 est une mise à niveau sur place qui supprime les versions précédentes de PowerShell 7. Les versions préliminaires de PowerShell peuvent être installées côte à côte avec d’autres versions de PowerShell.

  • PowerShell 7.4 est installé à l’emplacement $env:ProgramFiles\PowerShell\7
  • Le dossier $env:ProgramFiles\PowerShell\7 est ajouté à $env:PATH

Si vous devez exécuter PowerShell 7.4 côte à côte avec d’autres versions, utilisez la méthode d’installation ZIP pour installer l’autre version dans un dossier différent.

Prise en charge de Microsoft Update dans PowerShell 7.2 et versions ultérieures

PowerShell 7.2 et versions ultérieures prend en charge Microsoft Update. Quand vous activez cette fonctionnalité, vous obtenez les dernières mises à jour de PowerShell 7 dans votre flux de gestion Microsoft Update (MU) traditionnel, que ce soit avec Windows Update pour Entreprise, WSUS, Microsoft Endpoint Configuration Manager ou la boîte de dialogue MU interactive dans Paramètres.

Le package MSI PowerShell comprend les options de ligne de commande suivantes :

  • USE_MU – cette propriété a deux valeurs possibles :
    • 1 (par défaut) – Accepte l’installation des mises à jour par le biais de Microsoft Update, WSUS ou Configuration Manager
    • 0 : N’accepte pas la mise à jour via Microsoft Update, WSUS ou Configuration Manager
  • ENABLE_MU
    • 1 (par défaut) - Accepte l’utilisation de Microsoft Update pour les mises à jour automatiques
    • 0 : N’accepte pas l’utilisation de Microsoft Update

Notes

L’activation des mises à jour a peut-être été définie dans une installation précédente ou une configuration manuelle. L’utilisation de ENABLE_MU=0 ne supprime pas les paramètres existants. En outre, ce paramètre peut être remplacé par les paramètres de la stratégie de groupe contrôlés par votre administrateur.

Pour plus d’informations, consultez le FAQ sur Microsoft Update pour PowerShell.

Installer le package MSI à partir de la ligne de commande

Les packages MSI peuvent être installés à partir de la ligne de commande, ce qui permet aux administrateurs de déployer des packages sans interaction de l’utilisateur. Le package MSI inclut les propriétés suivantes pour contrôler les options d’installation :

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL : cette propriété contrôle l’option permettant d’ajouter l’élément Open PowerShell au menu contextuel dans l’Explorateur Windows.
  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL : cette propriété contrôle l’option permettant d’ajouter l’élément Run with PowerShell au menu contextuel dans l’Explorateur Windows.
  • ENABLE_PSREMOTING : cette propriété contrôle l’option permettant d’activer la communication à distance PowerShell pendant l’installation.
  • REGISTER_MANIFEST : cette propriété contrôle l’option permettant d’enregistrer le manifeste de journalisation des événements Windows.
  • ADD_PATH : cette propriété contrôle l’option permettant d’ajouter PowerShell à la variable d’environnement Windows PATH.
  • DISABLE_TELEMETRY - Cette propriété contrôle l’option permettant de désactiver la télémétrie de PowerShell en définissant la variable d’environnement POWERSHELL_TELEMETRY_OPTOUT.
  • INSTALLFOLDER – Cette propriété contrôle le répertoire d’installation. La valeur par défaut est $env:ProgramFiles\PowerShell\. Il s’agit de l’emplacement où le programme d’installation crée le sous-dossier versionné. Vous ne pouvez pas modifier le nom du sous-dossier versionné.
    • Pour les versions actuelles, le sous-dossier versionné est 7
    • Pour les versions préliminaires, le sous-dossier versionné est 7-preview

L’exemple suivant montre comment installer PowerShell sans assistance avec toutes les options d’installation activées.

msiexec.exe /package PowerShell-7.4.2-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1

Pour obtenir une liste complète des options de ligne de commande pour Msiexec.exe, consultez Options de ligne de commande.

Installation du package ZIP

Les archives ZIP binaires PowerShell sont fournies afin de permettre des scénarios de déploiement avancés. Téléchargez l’une des archives ZIP suivantes sur la page de la version actuelle.

Selon la façon dont vous téléchargez le fichier, vous devrez peut-être débloquer le fichier avec l’applet de commande Unblock-File. Décompressez le contenu à l’emplacement de votre choix et exécutez pwsh.exe à partir de celui-ci. Contrairement à l’installation des packages MSI, l’installation de l’archive ZIP ne vérifie pas les prérequis. Pour que la communication à distance via WSMan fonctionne correctement, vérifiez que vous respectez bien les prérequis.

Utilisez cette méthode pour installer la version ARM de PowerShell sur des ordinateurs comme Microsoft Surface Pro X. Pour de meilleurs résultats, installez PowerShell dans le dossier $env:ProgramFiles\PowerShell\7.

Installation en tant qu’outil global .NET

Si vous avez déjà installé le kit SDK .NET Core, vous pouvez installer PowerShell en tant qu’outil global .NET.

dotnet tool install --global PowerShell

Le programme d’installation de l’outil dotnet ajoute $HOME\.dotnet\tools à votre variable d’environnement $env:PATH. Toutefois, le $env:PATH de l’interpréteur de commandes en cours d’exécution n’a pas été mis à jour. Vous pouvez démarrer PowerShell à partir d’un nouvel interpréteur de commandes en tapant pwsh.

Installation à partir de Microsoft Store

PowerShell peut être installé à partir du Microsoft Store. Vous trouverez la version de PowerShell sur le site web du Microsoft Store ou dans l’application Store de Windows.

Avantages du package Microsoft Store :

  • Mises à jour automatiques intégrées à Windows
  • S’intègre à d’autres mécanismes de distribution de logiciels comme Intune et Configuration Manager
  • Peut être installé sur des systèmes Windows équipés de processeurs x86, x64 ou Arm64

Limitations connues

Par défaut, les packages Windows Store s’exécutent dans un bac à sable d’application qui virtualise l’accès à certains emplacements du système de fichiers et du Registre. Les changements d’emplacements de fichier et de Registre virtualisés ne sont pas conservés en dehors du bac à sable de l’application.

Ce bac à sable bloque toutes les modifications apportées au dossier racine de l’application. Les paramètres de configuration au niveau du système, stockés dans $PSHOME, ne peuvent pas être modifiés. Cela comprend la configuration WSMAN. Cette stratégie empêche les sessions à distance de se connecter aux installations basées sur le magasin de PowerShell. Les configurations au niveau de l’utilisateur et l’accès à distance SSH sont pris en charge.

Les commandes suivantes ont besoin d’écrire sur $PSHOME. Ces commandes ne sont pas prises en charge dans une instance Microsoft Store de PowerShell.

  • Register-PSSessionConfiguration
  • Update-Help -Scope AllUsers
  • Enable-ExperimentalFeature -Scope AllUsers
  • Set-ExecutionPolicy -Scope LocalMachine

Pour plus d’informations, consultez Comprendre la façon dont les applications de bureau empaquetées s’exécutent sur Windows.

Changements pour PowerShell 7.2

À compter de PowerShell 7.2, le package PowerShell est exempté de la virtualisation de fichiers et du Registre. Les changements d’emplacements de fichier et de Registre virtualisés sont désormais conservés en dehors du bac à sable de l’application. Toutefois, les changements apportés au dossier racine de l’application sont toujours bloqués.

Important

Pour que cette exemption fonctionne, vous devez exécuter Windows build 1903 ou ultérieur.

Installation d’une préversion

Les préversions de PowerShell 7 s’installent sur $env:ProgramFiles\PowerShell\7-preview afin d’être exécutées côte à côte avec d’autres versions de PowerShell. PowerShell 7.4 est la prochaine préversion.

Mise à niveau d’une installation existante

Pour obtenir de meilleurs résultats lors de la mise à niveau, vous devez utiliser la même méthode d’installation que celle utilisée lors de la première installation de PowerShell. Si vous n'êtes pas sûr de la manière dont PowerShell a été installé, vous pouvez vérifier la valeur de la variable $PSHOME, qui pointe toujours vers le répertoire contenant PowerShell que la session en cours exécute.

  • Si la valeur est $HOME\.dotnet\tools, PowerShell a été installé avec l'outil .NET Global.
  • Si la valeur est $Env:ProgramFiles\PowerShell\7, PowerShell a été installé en tant que package MSI ou avec Winget sur un ordinateur doté d'un processeur X86 ou x64.
  • Si la valeur commence par $Env:ProgramFiles\WindowsApps\, PowerShell a été installé en tant que package Microsoft Store ou avec Winget sur un ordinateur équipé d'un processeur ARM.
  • Si la valeur est autre, il est probable que PowerShell ait été installé en tant que package ZIP.

Si vous avez installé via le package MSI, ces informations apparaissent également dans le Panneau de configuration Programmes et fonctionnalités.

Pour déterminer si PowerShell peut être mis à niveau avec Winget, exécutez la commande suivante :

winget list --name PowerShell --upgrade-available

Si une mise à niveau est disponible, la sortie indique la dernière version disponible.

Remarque

Lors de la mise à niveau, PowerShell ne passe pas d’une version LTS à une version non LTS. La mise à niveau a uniquement lieu vers la dernière version de LTS, par exemple de 7.2.3 à 7.2.19. Pour effectuer la mise à niveau d’une version LTS vers une version stable plus récente ou la prochaine version LTS, vous devez installer la nouvelle version avec le MSI pour cette version.

Quand la version installée n’est pas une version LTS, PowerShell effectue une mise à niveau vers la dernière version stable.

Déploiement sur Windows 10 IoT Entreprise

Windows 10 IoT Entreprise contient Windows PowerShell, que l’on peut utiliser pour déployer PowerShell 7.

# Replace the placeholder information for the following variables:
$deviceip = '<device ip address'
$zipfile = 'PowerShell-7.4.2-win-arm64.zip'
$downloadfolder = 'u:\users\administrator\Downloads'  # The download location is local to the device.
    # There should be enough  space for the zip file and the unzipped contents.

# Create PowerShell session to target device
Set-Item -Path WSMan:\localhost\Client\TrustedHosts $deviceip
$S = New-PSSession -ComputerName $deviceIp -Credential Administrator
# Copy the ZIP package to the device
Copy-Item $zipfile -Destination $downloadfolder -ToSession $S

#Connect to the device and expand the archive
Enter-PSSession $S
Set-Location u:\users\administrator\Downloads
Expand-Archive .\PowerShell-7.4.2-win-arm64.zip

# Set up remoting to PowerShell 7
Set-Location .\PowerShell-7.4.2-win-arm64
# Be sure to use the -PowerShellHome parameter otherwise it tries to create a new
# endpoint with Windows PowerShell 5.1
.\Install-PowerShellRemoting.ps1 -PowerShellHome .

Quand vous configurez la communication à distance PowerShell, vous recevez un message d’erreur et êtes déconnecté de l’appareil. PowerShell doit redémarrer WinRM. Vous pouvez à présent vous connecter au point de terminaison PowerShell 7 sur l’appareil


# Be sure to use the -Configuration parameter. If you omit it, you connect to Windows PowerShell 5.1
Enter-PSSession -ComputerName $deviceIp -Credential Administrator -Configuration PowerShell.7.4.2

Déploiement sur Windows 10 IoT Core

Windows 10 IoT Core ajoute Windows PowerShell lorsque vous incluez la fonctionnalité IOT_POWERSHELL, que nous pouvons utiliser pour déployer PowerShell 7. Les étapes définies ci-dessus pour Windows 10 IoT Entreprise peuvent également être suivies pour IoT Core.

Pour ajouter la dernière version de PowerShell dans l’image d’expédition, utilisez la commande Import-PSCoreRelease pour inclure le package dans la zone de travail et ajouter la fonctionnalité OPENSRC_POWERSHELL à votre image.

Notes

Pour l’architecture ARM64, Windows PowerShell n’est pas ajouté lorsque vous incluez IOT_POWERSHELL. L’installation à partir d’un fichier zip ne fonctionne donc pas. Vous devez utiliser la commande Import-PSCoreRelease pour l’ajouter dans l’image.

Déploiement sur Nano Server

Ces instructions partent du principe que Nano Server est un système d’exploitation sans périphériques de contrôle (« headless ») qui a une version PowerShell déjà en cours d’exécution. Pour plus d’informations, consultez la documentation Nano Server Image Builder.

Il existe deux façons différentes de déployer des binaires PowerShell.

  1. Hors connexion : montez le disque dur virtuel Nano Server et décompressez le contenu du fichier zip à l’emplacement que vous avez choisi dans l’image montée.
  2. En ligne : transférez le fichier zip sur une session PowerShell et décompressez-le à l’emplacement que vous avez choisi.

Dans les deux cas, vous avez besoin du package ZIP de la version de Windows x64. Exécutez les commandes dans une instance « Administrateur » de PowerShell.

Déploiement hors connexion de PowerShell

  1. Utilisez votre utilitaire zip favori pour décompresser le package dans un répertoire au sein de l’image Nano Server montée.
  2. Démontez l’image et démarrez-la.
  3. Connectez-vous à l’instance intégrée de Windows PowerShell.
  4. Suivez les instructions pour créer un point de terminaison de communication à distance à l’aide de la « technique d’une autre instance ».

Déploiement en ligne de PowerShell

Déployez PowerShell sur Nano Server en procédant comme suit.

# Replace the placeholder information for the following variables:
$ipaddr = '<Nano Server IP address>'
$credential = Get-Credential # <An Administrator account on the system>
$zipfile = 'PowerShell-7.4.2-win-x64.zip'
# Connect to the built-in instance of Windows PowerShell
$session = New-PSSession -ComputerName $ipaddr -Credential $credential
# Copy the file to the Nano Server instance
Copy-Item $zipfile c:\ -ToSession $session
# Enter the interactive remote session
Enter-PSSession $session
# Extract the ZIP file
Expand-Archive -Path C:\PowerShell-7.4.2-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7'

Si vous voulez une communication à distance via WSMan, suivez les instructions pour créer un point de terminaison de communication à distance à l’aide de la « technique d’une autre instance ».

Communication à distance PowerShell

PowerShell prend en charge le protocole de communication à distance PowerShell (PSRP) sur WSMan et SSH. Pour plus d'informations, consultez les pages suivantes :

Les conditions préalables suivantes doivent être remplies pour activer la communication à distance PowerShell sur WSMan sur les versions antérieures de Windows.

  • Installez Windows Management Framework (WMF) 5.1 (le cas échéant). Pour plus d’informations sur WMF, voir Vue d’ensemble de WMF.
  • Installer le runtime C universel sur les versions de Windows antérieures à Windows 10. Il est disponible par téléchargement direct ou sur Windows Update. Ce package est déjà installé sur les systèmes où tous les correctifs sont installés.

Versions de Windows prises en charge

Le tableau suivant répertorie les versions de PowerShell et les versions de Windows sur lesquelles elles sont prises en charge. Ces versions sont prises en charge jusqu’à la fin du support de la version de PowerShell ou la fin du support de la version de Windows.

  • L’icône Pris en charge indique que la version du système d’exploitation ou de PowerShell est toujours prise en charge
  • L’icône Plus aucun support indique que la version de PowerShell n’est plus prise en charge sur cette version du système d’exploitation
  • L’icône En test indique que nous n’avons pas terminé de tester PowerShell sur ce système d’exploitation
  • L’icône Non pris en charge indique que la version du système d’exploitation ou de PowerShell n’est pas prise en charge
  • Quand la version du système d’exploitation et la version de PowerShell ont toutes deux l’icône Pris en charge, la combinaison est prise en charge
Windows 7.2 (LTS-précédent) 7.3 7.4 (LTS-actuel)
Pris en charge Windows Server 2016, 2019 ou 2022 Prise en charge Prise en charge Pris en charge
Pris en charge Windows Server Nano (1809 ou ultérieur) Prise en charge Prise en charge Pris en charge
Pris en charge Windows 11 Prise en charge Prise en charge Pris en charge
Pris en charge Windows 10 1607+ Prise en charge Prise en charge Pris en charge

Notes

La prise en charge d’une version spécifique de Windows est déterminée par les politiques globales de support de Microsoft. Pour plus d'informations, consultez les pages suivantes :

PowerShell est pris en charge sur Windows pour les architectures de processeur suivantes.

Windows 7.2 (LTS ou actuelle) 7.3 7.4 (LTS-actuel)
Windows Server 2016+ x64, x86 x64, x86 x64, x86
Windows Server Core 2016+ x64, x86 x64, x86 x64, x86
Nano Server Version 1803+ x64 x64 x64
Client Windows 11 x64, Arm64 x64, Arm64 x64, Arm64
Client Windows 10 x64, x86, Arm64 x64, x86, Arm64 x64, x86, Arm64

Vous pouvez consulter la version que vous utilisez en exécutant winver.exe.

Prise en charge de l’installation

Microsoft prend en charge les méthodes d’installation mentionnées dans ce document. D’autres méthodes tierces d’installation peuvent être disponibles à partir d’autres sources. Même s’il est possible que ces outils et méthodes fonctionnent, Microsoft ne peut pas prendre en charge ces méthodes.