PowerShell 7.x: How to upgrade from command line.

You’re running PowerShell 7.x on Windows. A new stable release drops (v7.5.3), and you’re greeted with:

A new PowerShell stable release is available: v7.5.3
Upgrade now, or check out the release page at: https://aka.ms/PowerShell-Release?tag=v7.5.3

You try winget:

winget upgrade --id Microsoft.Powershell --source winget

But it fails with:

No installed package found matching input criteria.

Translation:

“Sorry, I forgot you installed PowerShell. Maybe it was MSI? Maybe it was chocolatey? Maybe it was a dream?”

Winget, the well-meaning intern, checks the registry, finds nothing, shrugs, and goes back to alphabetizing Edge extensions. Meanwhile, your upgrade banner keeps mocking you.

If you want to learn more about the winget. 👉 Use WinGet to install and manage applications

Here’s how to upgrade manually from inside PowerShell:

Method 1:

Invoke-WebRequest -Uri "https://github.com/PowerShell/PowerShell/releases/download/v7.5.3/PowerShell-7.5.3-win-x64.msi" -OutFile "$env:TEMP\pwsh.msi"
Start-Process msiexec.exe -ArgumentList "/i $env:TEMP\pwsh.msi /quiet /norestart" -Wait
Remove-Item "$env:TEMP\pwsh.msi"

This will:

  • Download the MSI installer for v7.5.3
  • Install it silently
  • Clean up the installer file

Method 2:

irm https://aka.ms/install-powershell.ps1 | iex
What Does irm | iex Actually Do?

irm is shorthand for Invoke-RestMethod. It fetches the official PowerShell install script from Microsoft’s servers.
iex stands for Invoke-Expression. It immediately executes the downloaded script in your current session.

Together, they form a tactical one-liner that:

  • Detects your OS and architecture
  • Downloads the correct installer
  • Runs it silently, without GUI prompts

This combo is trusted, fast, and ideal for sovereign upgrades across multiple nodes.

And now for sysadmins to pin a specific version:

irm https://aka.ms/install-powershell.ps1 | iex -UseMSI -DestinationPath "$env:TEMP" -Version '7.5.3'

Oh yeah, almost forgot. Post-Upgrade Check


$PSVersionTable.PSVersion

I hope this helps.

If you like this, feel free to check out some of my other articles about PowerShell:
How to print to PDF from PowerShell
Monitoring RDS Licensing Server with PowerShell

Scriptlie is my living archive of the things I do. Feel free to drop in from time to time and check for new content—every post is a trace of something real.