Comment installer PowerShell sous Windows Server Core ?
Dans ce chapitre, nous allons voir comment installer PowerShell, appelé également PowerShell Core, sur un serveur Windows Server 2022 en mode Core. Vous pouvez être étonné à la lecture de cette phrase et vous dire que PowerShell est déjà installé sur le serveur. Oui, c'est vrai, mais il y a un "mais"...
Sous Windows Server (mais aussi les versions desktop de Windows), le système d'exploitation est livré avec Windows PowerShell, actuellement en version 5.1. D'ailleurs, Windows PowerShell 5.1 est disponible depuis plusieurs années et n'évolue plus puisque Microsoft se concentre désormais sur PowerShell, en édition "Core". A l'heure où j'écris ce chapitre, PowerShell 7.2.1 est la dernière version stable disponible et c'est celle-ci que l'on va installer sur notre serveur.
PowerShell (Core) est basé sur le framework .NET Core et il s'agit d'une version multiplateformes de PowerShell. Pour bénéficier des dernières nouveautés de PowerShell sur notre serveur Core, il faut que l'on installe PowerShell 7.2.1.
Si vous souhaitez en savoir plus sur les différentes entre Windows PowerShell et PowerShell (Core), je vous recommande de lire cet article : Windows PowerShell VS PowerShell Core.
Remarque : PowerShell Core est pris en charge sur Windows Server 2012, 2012 R2, 2016, 2019 et 2022.
I. La version actuelle de PowerShell avec $PSVersionTable
Sur notre serveur, on peut regarder quelle est la version de PowerShell installée en consultant le contenu de la variable $PSVersionTable.
$PSVersionTable
Ce qui retourne plusieurs lignes, et ce sont les deux premières lignes qui m'intéresse plus particulièrement.
Name Value
---- -----
PSVersion 5.1.20348.1
PSEdition Desktop
On voit clairement la présence de la version "5.1" et l'édition Desktop correspondante à Windows PowerShell. Maintenant, voyons comment installer PowerShell sur notre serveur.
II. Installation de PowerShell Core sur Windows Server
La commande Invoke-WebRequest va nous permettre de télécharger le fichier via PowerShell. Grâce à elle, nous allons pouvoir télécharger le package d'installation au format MSI à partir du GitHub officiel où sont disponibles les versions de PowerShell.
Je commence par me positionner au sein du dossier "C:\Sources" :
cd C:\Sources
Puis, je télécharge le dossier en précisant l'URL complète vers le package MSI et le nom du fichier local via le paramètre -OutFile.
Invoke-WebRequest -Uri "https://github.com/PowerShell/PowerShell/releases/download/v7.2.1/PowerShell-7.2.1-win-x64.msi" -OutFile Powershell-7.2.1-x64.msi
Lorsque le fichier MSI sera téléchargé, je vais pouvoir lancer l'installation de PowerShell. Puisqu'il s'agit d'un package MSI, on peut utiliser l'option "/quiet" pour déclencher une installation silencieuse et automatique.
.\Powershell-7.2.1-x64.msi /quiet
Patientez un instant, pour laisser le temps à PowerShell de s'installer. Ensuite, vous pouvez lancer PowerShell en appelant l'exécutable "pwsh.exe" et non "powershell.exe".
pwsh.exe
Cette fois-ci, si vous regardez le contenu de la variable $PSVersionTable une fois "pwsh.exe" lancé, vous obtenez un tout autre résultat :
Name Value
---- -----
PSVersion 7.2.1
PSEdition Core
Désormais, sur notre serveur, nous avons Windows PowerShel 5.1 et PowerShell 7.2.1 : ce n'est pas un problème puisque c'est deux versions peuvent cohabiter sans problème.