New cross-platform PowerShell update tool.
PSCoreUpdate supports automation update of new cross-platform PowerShell (pwsh).
Currently, PowerShell Team is planning on supporting security updates of PowerShell through Microsoft Update on Windows (#6118), but it will take some time for realization.
Homebrew Cask is now available on macOS, but the installation of Homebrew is a bit heavy.
PowerShell Team began supporting updates to PowerShell via Microsoft Update starting with PowerShell 7.2, but updates cannot be performed at any time, and there is no module that can manage release assets.
This module is a little tool to solve such inconvenience.
You can install it from PowerShell gallery.
# Using PowerShellGet
Install-Module PSCoreUpdate
# Using Microsoft.PowerShell.PSResourceGet
Install-PSResource -Name PSCoreUpdate
If you use PSCoreUpdate version 2 or earlier, please uninstall all version first.
Uninstall-Module PSCoreUpdate -AllVersions
Install-Module PSCoreUpdate
Note : PSCoreUpdate version.3 has many breaking changes.
- See the release note for detail.
This module is for updating PowerShell.
So, the first-time installation must be performed manually.
You can use the official installation script.
Invoke-Expression "& { $(Invoke-RestMethod 'https://aka.ms/install-powershell.ps1') } -UseMSI -Quiet"
Check if the current console is the latest version.
PS C:\> Test-LatestVersion
No updates. PowerShell 7.4.3 is the latest version.
If you use preview release PowerShell, you can use -Release Preview
parameter.
PS C:\> Test-LatestVersion -Release Preview
if you use LTS version PowerShell, you can can use -Release LTS
parameter.
PS C:\> Test-LatestVersion -Release LTS
Update PowerShell if the newer version found.
PS C:\> Update-PowerShellRelease -Latest
If you want to update preview release, you can use -Release Preview
parameter.
PS C:\> Update-PowerShellRelease -Latest -Release Preview
if you use LTS version PowerShell, you can can use -Release LTS
parameter.
PS C:\> Update-PowerShellRelease -Latest -Release LTS
You can do silent install with -Silent
switch parameter.
PS C:\> Update-PowerShellRelease -Latest -Silent
- This cmdlet supports only Windows and macOS.
You can use a package management tool like yum, apt etc. on Linux.
Find PowerShell release information from GitHub.
Note
This function uses GitHub REST API Version 2022-11-28.
PS C:\> Find-PowerShellRelease -MaxItems 10
Version Name Published PreRelease
------- ---- --------- ----------
7.4.3 v7.4.3 Release of PowerShell 2024/06/18 23:13:56 False
7.4.2 v7.4.2 Release of PowerShell 2024/04/11 23:07:12 False
7.4.1 v7.4.1 Release of PowerShell 2024/01/11 23:08:30 False
7.4.0 v7.4.0 Release of PowerShell 2023/11/16 17:06:48 False
7.3.12 v7.3.12 Release of PowerShell 2024/04/11 22:57:39 False
7.3.11 v7.3.11 Release of PowerShell 2024/01/11 22:01:05 False
7.3.10 v7.3.10 Release of PowerShell 2023/11/16 17:05:59 False
7.3.9 v7.3.9 Release of PowerShell 2023/10/26 17:57:23 False
7.3.8 v7.3.8 Release of PowerShell 2023/10/10 17:15:04 False
7.3.7 v7.3.7 Release of PowerShell 2023/09/19 16:28:10 False
Find-PowerShellRelease
stores local in-memory cache for 10 minutes.
If you don't want use cache, use -NoCache
parameter.
Find-PowerShellRelease -MaxItems 10 -NoCache
-VersionRange
parameter is added instead of -MinimumVersion
, -MaximumVersion
.
This parameter follows Nuget version range syntax.
PS C:\> Find-PowerShellRelease -VersionRange "[7.3,7.4]"
Version Name Published PreRelease
------- ---- --------- ----------
7.4.0 v7.4.0 Release of PowerShell 2023/11/16 17:06:48 False
7.3.12 v7.3.12 Release of PowerShell 2024/04/11 22:57:39 False
7.3.11 v7.3.11 Release of PowerShell 2024/01/11 22:01:05 False
7.3.10 v7.3.10 Release of PowerShell 2023/11/16 17:05:59 False
7.3.9 v7.3.9 Release of PowerShell 2023/10/26 17:57:23 False
7.3.8 v7.3.8 Release of PowerShell 2023/10/10 17:15:04 False
7.3.7 v7.3.7 Release of PowerShell 2023/09/19 16:28:10 False
7.3.6 v7.3.6 Release of PowerShell 2023/07/13 22:39:48 False
7.3.5 v7.3.5 Release of PowerShell 2023/06/27 23:21:50 False
7.3.4 v7.3.4 Release of PowerShell 2023/04/13 18:37:36 False
7.3.3 v7.3.3 Release of PowerShell 2023/02/24 1:22:55 False
7.3.2 v7.3.2 Release of PowerShell 2023/01/24 19:34:31 False
7.3.1 v7.3.1 Release of PowerShell 2022/12/13 16:17:08 False
7.3.0 v7.3.0 Release of PowerShell 2022/11/09 0:37:40 False
Find PowerShell build status.
PS C:\> Find-PowerShellBuildStatus -All
Version Release ReleaseDate
------- ------- -----------
7.4.3 Stable 2024/06/18 23:26:06
7.5.0-preview.3 Preview 2024/05/28 18:13:56
7.4.3 LTS 2024/06/18 23:26:06
Find PowerShell support status.
- Official information : PowerShell end-of-support dates
Note
This function uses endoflife.date raw data on GitHub.
# Find all versions
PS C:\> Find-PowerShellSupportStatus
Version Is EOS EOS Date
------- ------- --------
7.4 False 2026/11/10
7.3 True 2024/05/08
7.2 False 2024/11/08
7.1 True 2022/05/08
7.0 True 2022/12/03
6.2 True 2020/09/04
6.1 True 2019/09/28
6.0 True 2019/02/13
# Find supported version only
PS C:\> Find-PowerShellSupportStatus -ExcludeEOS
Version Is EOS EOS Date
------- ------ --------
7.4 False 2026/11/10
7.2 False 2024/11/08
Download PowerShell release assets.
PS C:\> Save-PowerShellAsset -Latest -AssetType MSI_WIN64 -OutDirectory .\
The types of assets are as follows.
Value | Asset |
---|---|
HASHES_SHA256 | hashes.sha256 |
MSI_WIN32 | [PowerShell version]-win-x86.msi |
MSI_WIN64 | [PowerShell version]-win-x64.msi |
MSI_ARM64 | [PowerShell version]-win-arm64.msi |
MSIXBUNDLE | [PowerShell version]-win.msixbundle |
PKG_OSX | [PowerShell version]-osx-x64.pkg |
PKG_OSXARM64 | [PowerShell version]-osx-arm64.pkg |
RPM_CM | [PowerShell version]-cm.x86_64.rpm |
RPM_CMARM64 | [PowerShell version]-cm.aarch64.rpm |
RPM_RH | [PowerShell version]-rh.x86_64.rpm |
DEB_DEB64 | [PowerShell version]-deb_amd64.deb |
TAR_LINUXARM32 | [PowerShell version]-linux-arm32.tar.gz |
TAR_LINUXARM64 | [PowerShell version]-linux-arm64.tar.gz |
TAR_LINUXALPINE64 | [PowerShell version]-linux-(musl|alpine)-x64.tar.gz |
TAR_LINUX64FXDEPENDENT | [PowerShell version]-linux-x64-fxdependent.tar.gz |
TAR_LINUXALPINE64FXDEPENDENT | [PowerShell version]-x64-(musl-noopt|alpine)-fxdependent.tar.gz |
TAR_LINUX64 | [PowerShell version]-linux-x64.tar.gz |
TAR_OSX | [PowerShell version]-osx-x64.tar.gz |
TAR_OSXARM64 | [PowerShell version]-osx-arm64.tar.gz |
ZIP_WINARM64 | [PowerShell version]-win-arm64.zip |
ZIP_WIN32 | [PowerShell version]-win-x86.zip |
ZIP_WIN64 | [PowerShell version]-win-x64.zip |
ZIP_WINFXDEPENDENT | [PowerShell version]-win-fxdependent.zip |
ZIP_WINFXDEPENDENTDESKTOP | [PowerShell version]-win-fxdependentWinDesktop.zip |
- These assets are not available from the latest version.
Value | Asset |
---|---|
MSIX_WIN32 | [PowerShell version]-win-x86.msix (Currently unreleased #13284) |
MSIX_WIN64 | [PowerShell version]-win-x64.msix (Currently unreleased #13284) |
MSIX_WINARM32 | [PowerShell version]-win-arm32.msix (Currently unreleased #13284) |
MSIX_WINARM64 | [PowerShell version]-win-arm64.msix (Currently unreleased #13284) |
PKG_OSX1011 | [PowerShell version]-osx.10.11-x64.pkg |
PKG_OSX1012 | [PowerShell version]-osx.10.12-x64.pkg |
RPM_RHEL8 | [PowerShell version]-centos.8.x86_64.rpm |
RPM_RHEL7 | [PowerShell version]-rhel.7.x86_64.rpm |
DEB_DEBIAN8 | [PowerShell version]-debian.8_amd64.deb |
DEB_DEBIAN9 | [PowerShell version]-debian.9_amd64.deb |
DEB_DEBIAN10 | [PowerShell version]-debian.10_amd64.deb |
DEB_DEBIAN11 | [PowerShell version]-debian.11_amd64.deb |
DEB_UBUNTU14 | [PowerShell version]-ubuntu.14.nn_amd64.deb |
DEB_UBUNTU16 | [PowerShell version]-ubuntu.16.nn_amd64.deb |
DEB_UBUNTU17 | [PowerShell version]-ubuntu.17.nn_amd64.deb |
DEB_UBUNTU18 | [PowerShell version]-ubuntu.18.nn_amd64.deb |
DEB_UBUNTU20 | [PowerShell version]-ubuntu.20.nn_amd64.deb |
APPIMAGE | [PowerShell version]-x86_64.AppImage |
WIXPDB32 | [PowerShell version]-win-x86.wixpdb |
WIXPDB64 | [PowerShell version]-win-x64.wixpdb |
ZIP_WINARM32 | [PowerShell version]-win-arm32.zip (Removed in PowerShell 7.4 Preview.5 #20102) |