Skip to content

[All OS] PowerShell will be updated from 7.4 to 7.6 LTS on all runner images #14150

@v-GeorgyPuzakov

Description

@v-GeorgyPuzakov

Breaking changes

Runner images affected

Image Previous version New version
ubuntu-22.04 7.4.x 7.6.x
ubuntu-24.04 7.4.x 7.6.x
ubuntu-26.04 7.6.x 7.6.x (no change)
ubuntu-slim 7.5.x 7.6.x
macos-14 7.4.x 7.6.x
macos-15 7.4.x 7.6.x
macos-26 7.4.x 7.6.x
windows-2022 7.4.x 7.6.x
windows-2025 7.4.x 7.6.x
windows-2025-vs2026 7.4.x 7.6.x
windows-11-arm64 7.4.x 7.6.x
windows-11-vs2026-arm64 7.4.x 7.6.x

PowerShell will be updated from 7.4.x to 7.6.x on all runner images. PowerShell 7.4 reaches end of support on November 18, 2026, while 7.6 is the latest LTS release based on .NET 10, carrying 3 years of support. See the PowerShell support lifecycle.

This is a major.minor version upgrade (7.4 → 7.6) and contains the following breaking changes:

  • The Microsoft.PowerShell.ThreadJob module replaces the ThreadJob module. The Start-ThreadJob cmdlet hasn't changed, but if your scripts use the module-qualified name ThreadJob\Start-ThreadJob, update it to Microsoft.PowerShell.ThreadJob\Start-ThreadJob.
  • WildcardPattern.Escape now correctly escapes lone backticks (#25211)
  • The -ChildPath parameter of Join-Path is now string[] instead of string (#24677)
  • Trailing space removed from event source name (#24192)

For full details, see the PowerShell 7.6 release notes and changelog.

Target date

This change will be rolled out beginning June 8, 2026 and will complete by June 15, 2026.

The motivation for the changes

PowerShell 7.6 is the latest LTS release, based on .NET 10. It replaces 7.4 as the recommended production version. Key benefits include:

  • Based on .NET 10 with performance improvements
  • New features and cmdlet enhancements
  • 3 years of LTS support (until 2029)
  • Security fixes and improvements not available in 7.4

Possible impact

Workflows that use pwsh may be affected by behavioral changes between 7.4 and 7.6. The breaking changes are minor:

  • Scripts using the module-qualified name ThreadJob\Start-ThreadJob will break — update to Microsoft.PowerShell.ThreadJob\Start-ThreadJob
  • Join-Path -ChildPath now accepts string[] — unlikely to break existing scripts but changes the parameter binding behavior
  • WildcardPattern.Escape now escapes lone backticks — scripts relying on the old (incorrect) behavior may need adjustment
  • Event source name no longer has a trailing space — scripts matching exact event source names may need updating

Additionally, PowerShell 7.6 is built on .NET 10 (7.4 was on .NET 8). Scripts that rely on specific .NET runtime behavior may be affected.

You can review the PowerShell 7.6 release notes and update your scripts to be compatible with 7.6.

Platforms affected

  • Azure DevOps
  • GitHub Actions

Runner images affected

  • Ubuntu 22.04
  • Ubuntu 24.04
  • Ubuntu Slim
  • macOS 14
  • macOS 14 Arm64
  • macOS 15
  • macOS 15 Arm64
  • macOS 26
  • macOS 26 Arm64
  • Windows Server 2022
  • Windows Server 2025
  • Windows Server 2025 with Visual Studio 2026

Mitigation ways

Update your scripts to comply with 7.6

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions