Comment mettre à jour PowerShell sur Windows ?
I. Présentation
Microsoft publie les mises à jour de PowerShell directement sur GitHub pour les différentes plateformes, que ce soit Windows ou Linux. Quand je parle de PowerShell, je parle du produit appelé auparavant PowerShell Core, et non de Windows PowerShell qui est intégré à Windows.
Des mises à jour sortent régulièrement pour PowerShell, à l'heure où j'écris ces lignes, la version PowerShell 7.0.1 est la dernière release stable. Si vous êtes sous PowerShell 7.0, un message de ce type s'affiche dans la console :
Plutôt que de s'embêter à mettre à jour PowerShell manuellement, on peut le faire en ligne de commande directement, ce qui est intéressant pour le faire dans une tâche planifiée également ??
Voyons comment mettre à jour PowerShell en ligne de commande.
II. Update PowerShell
Microsoft met à disposition un script d'installation de PowerShell sur son GitHub, nous allons l'appeler avec les bons arguments pour réaliser la mise à jour. Il est à noter que cela pourrait servir aussi à installer PowerShell sur un poste.
Note : vous devez avoir les droits d'administrateur pour réaliser cette installation / mise à jour
Voici la commande à exécuter, où nous allons télécharger le script pour l'exécuter avec le paramètre -UseMSI pour le récupérer au format MSI :
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"
Pour automatiser la mise à jour, il faut utiliser l'option -Quiet pour réaliser une installation silencieuse à l'aide du package MSI.
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet"
Patientez pendant le téléchargement et l'installation...
PowerShell va se fermer automatiquement pour se mettre à jour. Ensuite, nous pouvons voir que la mise à jour PowerShell est bien installée :
La commande précédent peut-être facilement intégrée dans une tâche planifiée si vous souhaitez automatiser la mise à jour, sinon gardez-la dans un coin pour la relancer ultérieurement ?
Pour information, d'autres paramètres sont disponibles :
- -Preview : installer la dernière version Preview disponible
- -Daily : installer la build du canal Daily
- -Destination : spécifier un répertoire dans lequel installer PowerShell
Puisque je suis sympa, je vous donne la ligne de commande pour faire cette update sur Linux à l'aide de wget, sur la base d'un script également, en bash cette fois-ci :
wget https://aka.ms/install-powershell.sh; sudo bash install-powershell.sh; rm install-powershell.sh
Le processus se déroule en trois étape : télécharger le script, l'exécuter pour réaliser l'installation, puis le supprimer.
Bonjour Florian,
J’apporte une petite précision quant au titre sensiblement « trompeur » 😉 . Powershell 6 et 7 ont été conçu pour un fonctionnement « cote à cote » et ne modifient pas la version intégrée au système (ou installée/mise à jour via le Windows Management Framework).
Autrement dit, sur Windows 10 et/ou Server 2016-19 on bénéficie toujours de la version 5.1 (et de son éditeur ISE) – En revanche, si vous avez installé « Windows Terminal », sa console sera mise à jour 😀
Bonne continuation
Bonjour,
Mon PC de dev professionnel a eu des pb dans le passé et j’ai perdu une partie de powershell. J’ai bien la version 5.1.17… mais aucune commande ci dessus ne marche et d’ailleurs je n’arrive à lancer aucune commde (ex Get-service ).
PS C:\Windows\system32> $PSVersionTable
Name Value
—- —–
PSVersion 5.1.17763.1852
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
BuildVersion 10.0.17763.1852
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
PS C:\Windows\system32> Get-service
Get-service : Le terme «Get-service» n’est pas reconnu comme nom d’applet de commande, fonction, fichier de script ou programme exécutable.
Vérifiez l’orthographe du nom, ou si un chemin d’accès existe, vérifiez que le chemin d’accès est correct et réessayez.
Au caractère Ligne:1 : 1
+ Get-service
+ ~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-service:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
et je ne sais pas comment réinstaller proprement PowerShell. Pourtant dans le cadre d’un projet j’en ai besoin. Comment faire ?