Public mode

No access to your tenant or devices. Every item links to its source. What this means

Some sources or documents need attention: 258/260 feeds/APIs · 416/439 docs · checked 15:47 UTC Customize Public modeDiscuss ChangeIntel on Discord

Windows PowerShell and PowerShell 7 compatibility

This page's changes and edits · All guidance changes

Microsoft's edit ·

Add .NET 5 breaking change for string comparisons (#8672)

Microsoft's commit message in MicrosoftDocs/PowerShell-Docs · commit 445fd81 · +34 −1 lines · also on GitHub

⋯ 22 unchanged lines
2323 PowerShell. For a detailed discussion of changes between versions and the addition of new features,
2424 see the **What's New** articles for each version.
2525
26 −- [What's new in PowerShell 7.x](What-s-New-in-PowerShell-71.md)
26 +- [What's new in PowerShell 7.3](What-s-New-in-PowerShell-73.md)
27 +- [What's new in PowerShell 7.2](What-s-New-in-PowerShell-72.md)
28 +- [What's new in PowerShell 7.1](What-s-New-in-PowerShell-71.md)
29 +- [What's new in PowerShell 7.0](What-s-New-in-PowerShell-70.md)
2730 - [What's new in PowerShell 6.x](/previous-versions/powershell/scripting/whats-new/what-s-new-in-powershell-core-62?view=powershell-6&preserve-view=true)
2831
2932 ## .NET Framework vs .NET Core
⋯ 5 unchanged lines
3538 Core, see
3639 [Breaking changes for migration from .NET Framework to .NET Core](/dotnet/core/compatibility/fx-core).
3740
41 +Each new release of PowerShell is built on a newer version of .NET. There can be breaking changes in
42 +.NET that affect PowerShell.
43 +
44 +- PowerShell 7.3 (preview) - Built on .NET 7.0 (preview)
45 +- PowerShell 7.2 (LTS-current) - Built on .NET 6.0 (LTS-current)
46 +- PowerShell 7.1 - Built on .NET 5.0
47 +- PowerShell 7.0 (LTS) - Built on .NET Core 3.1 (LTS)
48 +- PowerShell 6.2 - Built on .NET Core 2.1
49 +- PowerShell 6.1 - Built on .NET Core 2.1
50 +- PowerShell 6.0 - Built on .NET Core 2.0
51 +
3852 With the advent of
3953 [.NET Standard 2.0](https://devblogs.microsoft.com/dotnet/introducing-net-standard/), PowerShell can
4054 load many traditional Windows PowerShell modules without modification. Additionally, PowerShell 7
⋯ 398 unchanged lines
439453 }
440454
441455 [M]::AggregateString((gci).Name, [M]::DoubleStrLen)
456 +```
457 +
458 +### String comparison behavior changed in PowerShell 7.1
459 +
460 +PowerShell 7.1 is built on .NET 5.0, which introduced the following breaking change:
461 +
462 +- [Behavior changes when comparing strings on .NET 5+](/dotnet/standard/base-types/string-comparison-net-5-plus)
463 +
464 +As of .NET 5.0, culture invariant string comparisons ignore non-printing control characters.
465 +
466 +For example, the following two strings are considered to be identical:
467 +
468 +```powershell
469 +# Escape sequence "`a" is Ctrl-G or [char]7
470 +'Food' -eq "Foo`ad"
471 +```
472 +
473 +```Output
474 +True
442475 ```
443476
444477 ## Cmdlet changes
⋯ 407 unchanged lines

Microsoft's Markdown source from MicrosoftDocs/PowerShell-Docs, © Microsoft Corporation, under CC BY 4.0. Changed lines with up to 3 unchanged lines around each; ChangeIntel kept this copy 10 Oct 03:16 UTC. The commit date is when the source changed, which can be hours or days before Learn published it.

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 20 Oct 15:47 UTC · 258 of 260 readable · 256 fully read · documentation 416/439 current