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.

  • Package MSI : le meilleur choix pour l’utilisateur standard.
  • Package ZIP : le moyen le plus simple pour installer plusieurs versions ou pour une utilisation dans un pipeline CI/CD. C’est la méthode d’installation 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.
  • Winget : pour les utilisateurs qui préfèrent utiliser le nouvel outil Gestionnaire de package Windows.
  • 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.

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

Notes

PowerShell 7.2 s’installe dans un nouveau répertoire et s’exécute côte à côte avec Windows PowerShell 5.1. PowerShell 7.2 est une mise à niveau sur place qui remplace PowerShell 7.0 et versions antérieures.

  • PowerShell 7.2 est installé sur $env:ProgramFiles\PowerShell\7
  • Le dossier $env:ProgramFiles\PowerShell\7 est ajouté à $env:PATH
  • Les dossiers des versions publiées précédemment sont supprimés

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

Prise en charge de Microsoft Update dans PowerShell 7.2

PowerShell 7.2 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 7.2 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 (par défaut) – N’accepte pas l’installation des mises à jour par le biais de 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.

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

msiexec.exe /package PowerShell-7.2.4-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

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 $env:USERPROFILE\.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.

Installer PowerShell en utilisant Winget

Winget, le gestionnaire de package Windows, permet aux développeurs de découvrir, d’installer, de mettre à niveau, de supprimer et de configurer des applications sur des ordinateurs Windows 10. Cet outil est l’interface cliente du service Gestionnaire de package Windows.

Notes

Pour obtenir la liste des exigences système et des instructions d’installation, consultez la documentation winget.

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.2.4.0 winget
PowerShell Preview Microsoft.PowerShell.Preview 7.3.0.3 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

Installation à partir de Microsoft Store

PowerShell 7.2 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

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 tous les changements apportés 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.3 sera 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. Chaque méthode d’installation installe PowerShell à un autre emplacement. Si vous n’êtes pas sûr de la façon dont PowerShell a été installé, vous pouvez comparer l’emplacement installé avec les informations du package fournies dans cet article. Si vous avez installé PowerShell via le package MSI, ces informations s’affichent dans le panneau de configuration Programmes et fonctionnalités.

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.2.4-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.2.4-win-Arm64.zip

# Set up remoting to PowerShell 7
Set-Location .\PowerShell-7.2.4-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.2.4

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 ») sur lequel une version de PowerShell est 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.2.4-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.2.4-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.

  • ✅ indique que la version du système d’exploitation ou de PowerShell est toujours prise en charge
  • ❌ indique que la version du système d’exploitation ou de PowerShell n’est pas prise en charge
  • 🟡 indique que la version de PowerShell n’est plus prise en charge sur cette version du système d’exploitation
  • Cette combinaison est prise en charge quand la version du système d’exploitation et la version de PowerShell ont toutes les deux ✅
Windows 7.0 (LTS) 7.1 7.2 (LTS ou actuelle) 7.3 (préversion)
✅ Windows Server 2016, 2019 ou 2022 🟡
✅ Windows Server 2012 R2 🟡
✅ Windows Server Core (2012 R2 ou version ultérieure) 🟡
✅ Windows Server Nano (1809 ou version ultérieure) 🟡
❌ Windows Server 2012 🟡 🟡
❌ Windows Server 2008 R2 🟡 🟡
✅ Windows 11 🟡
✅ Windows 10 1607+ 🟡
✅ Windows 8.1 🟡

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.0 (LTS) 7.2 (LTS ou actuelle) 7.3 (préversion)
Nano Server Version 1803+ x64, Arm32 x64 x64
Windows Server 2012 R2+ x64, x86 x64, x86 x64, x86
Windows Server Core 2012 R2+ x64, x86 x64, x86 x64, x86
Client Windows 10 ou 11 x64, x86 x64, x86, Arm64 x64, x86, Arm64
Client Windows 8.1 x64, x86 x64, x86 x64, x86

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.