# Equivalent manual check: $latest = Invoke-RestMethod -Uri 'https://api.github.com/repos/PowerShell/PowerShell/releases/latest' $current = $PSVersionTable.PSVersion if ($latest.tag_name.TrimStart('v') -gt $current) Write-Host "Update available: $current -> $latest.tag_name"
Write-Log "Starting PowerShell update process..." if ($PSVersionTable.PSVersion.Major -ge 7) try Write-Log "Checking for PowerShell Core update..." $oldVersion = $PSVersionTable.PSVersion.ToString() $result = Update-PowerShell -Stable -PassThru -Force -ErrorAction Stop Write-Log "PowerShell updated from $oldVersion to $($result.NewVersion)" powershell update command
| | Typical Command | Scope | |------------|--------------------|------------| | PowerShell (Core) 6/7 | Update-PowerShell | Cross-platform | | Windows PowerShell 5.1 | Windows Update | OS-integrated | | Modules (from PSGallery) | Update-Module | User/AllUsers | | Help content | Update-Help | Module-specific | | NuGet/Provider | Install-PackageProvider | Machine-wide | ⚠️ Note: Update-PowerShell is available only in PowerShell 7+. For earlier versions, you must download the MSI/package manually. 2. The Primary Command: Update-PowerShell (PowerShell 7+) # Basic usage Update-PowerShell With specific release channel Update-PowerShell -Stable # Default Update-PowerShell -Preview # Beta builds Update-PowerShell -LTS # Long Term Servicing Without confirmation Update-PowerShell -PassThru -Force What it does: - Checks current version - Queries GitHub releases API - Downloads appropriate installer (.msi, .pkg, .tar.gz) - Launches installer silently (with -Force) - Requires elevation # Equivalent manual check: $latest = Invoke-RestMethod -Uri