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 22:55 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 ·

Remove "Core" from branding in release notes (#7825)

Microsoft's commit message in MicrosoftDocs/PowerShell-Docs · commit 2fab8f6 · +29 −28 lines · also on GitHub

11 ---
22 ms.date: 02/03/2020
3 −title: Differences between Windows PowerShell 5.1 and PowerShell (core) 7.x
3 +title: Differences between Windows PowerShell 5.1 and PowerShell 7.x
44 description: This article summarizes the differences and breaking changes from Windows PowerShell 5.1 and the current version of PowerShell that is based on .NET Core.
55 ---
6 −# Differences between Windows PowerShell 5.1 and PowerShell (core) 7.x
6 +# Differences between Windows PowerShell 5.1 and PowerShell 7.x
77
88 Windows PowerShell 5.1 is built on top of the .NET Framework v4.5. With the release of PowerShell
99 6.0, PowerShell became an open source project built on .NET Core 2.0. PowerShell 7.0 is built on
⋯ 1 unchanged line
1111 from the .NET Framework to .NET Core allowed PowerShell to become a cross-platform solution.
1212 PowerShell runs on Windows, macOS, and Linux.
1313
14 −There is little difference in the PowerShell language between Windows PowerShell and PowerShell
15 −(core). The differences are seen in the availability and behavior of PowerShell cmdlets between
16 −Windows and non-Windows platforms and the changes that stem from the differences between the .NET
17 −Framework and .NET Core.
14 +There are few differences in the PowerShell language between Windows PowerShell and PowerShell. The
15 +differences are most notable in the availability and behavior of PowerShell cmdlets between Windows
16 +and non-Windows platforms and the changes that stem from the differences between the .NET Framework
17 +and .NET Core.
1818
1919 This article summarizes the significant differences and breaking changes between Windows PowerShell
2020 and the current version of PowerShell. This summary does not include new features or cmdlets that
⋯ 2 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)
27 +- [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)
28 +
2629 ## .NET Framework vs .NET Core
2730
2831 PowerShell on Linux and macOS uses .NET Core, which is a subset of the full .NET Framework on
⋯ 16 unchanged lines
4548
4649 [!INCLUDE [Product terminology](../../includes/product-terms.md)]
4750
48 −## Modules not shipped for PowerShell (core)
51 +## Modules no longer shipped with PowerShell
4952
5053 For various compatibility reasons, the following modules are no longer included in PowerShell.
5154
⋯ 11 unchanged lines
6366 [Windows Workflow Foundation (WF)][workflow-foundation] that enables the creation of robust runbooks
6467 for long-running or parallelized tasks.
6568
66 −Due to the lack of support for Windows Workflow Foundation in .NET Core, we are not supporting
67 −PowerShell Workflow in PowerShell (core).
69 +Due to the lack of support for Windows Workflow Foundation in .NET Core, we removed PowerShell
70 +Workflow from PowerShell.
6871
6972 In the future, we would like to enable native parallelism/concurrency in the PowerShell language
7073 without the need for PowerShell Workflow.
⋯ 7 unchanged lines
7881
7982 ## Cmdlets removed from PowerShell
8083
81 −For the modules that are included in PowerShell (core), the following cmdlets were removed from
82 −PowerShell for various compatibility reasons or the use of unsupported APIs.
84 +For the modules that are included in PowerShell, the following cmdlets were removed from PowerShell
85 +for various compatibility reasons or the use of unsupported APIs.
8386
8487 CimCmdlets
8588
⋯ 68 unchanged lines
154157
155158 ### WMI v1 cmdlets
156159
157 −The following WMI v1 cmdlets were removed from PowerShell (core):
160 +The following WMI v1 cmdlets were removed from PowerShell:
158161
159162 - `Register-WmiEvent`
160163 - `Set-WmiInstance`
⋯ 21 unchanged lines
182185
183186 ### `*-EventLog` cmdlets
184187
185 −Due to the use of unsupported APIs, the `*-EventLog` has been removed from PowerShell (core). until
186 −a better solution is found. `Get-WinEvent` and `New-WinEvent` are available to get and create events
187 −on Windows.
188 +Due to the use of unsupported APIs, the `*-EventLog` cmdlets have been removed from PowerShell.
189 +`Get-WinEvent` and `New-WinEvent` are available to get and create events on Windows.
188190
189191 ### Cmdlets that use the Windows Presentation Framework (WPF)
190192
⋯ 17 unchanged lines
208210
209211 ### Renamed `powershell.exe` to `pwsh.exe`
210212
211 −The binary name for PowerShell (core) has been changed from `powershell(.exe)` to `pwsh(.exe)`. This
212 −change provides a deterministic way for users to run PowerShell (core) on machines to support
213 −side-by-side Windows PowerShell and PowerShell (core) installations. `pwsh` is also much shorter and
214 −easier to type.
213 +The binary name for PowerShell has been changed from `powershell(.exe)` to `pwsh(.exe)`. This
214 +change provides a deterministic way for users to run PowerShell on machines and support
215 +side-by-side installations of Windows PowerShell and PowerShell.
215216
216217 Additional changes to `pwsh(.exe)` from `powershell.exe`:
217218
⋯ 2 unchanged lines
220221 on non-Windows platforms. It also means that you can run commands like `pwsh foo.ps1` or
221222 `pwsh fooScript` without specifying `-File`. However, this change requires that you explicitly
222223 specify `-c` or `-Command` when trying to run commands like `pwsh.exe -Command Get-Command`.
223 −- PowerShell (core) accepts the `-i` (or `-Interactive`) switch to indicate an interactive shell.
224 +- `pwsh` accepts the `-i` (or `-Interactive`) switch to indicate an interactive shell.
224225 This allows PowerShell to be used as a default shell on Unix platforms.
225226 - Removed parameters `-ImportSystemModules` and `-PSConsoleFile` from `pwsh.exe`.
226227 - Changed `pwsh -version` and built-in help for `pwsh.exe` to align with other native tools.
⋯ 23 unchanged lines
250251 adoption in the PowerShell community.
251252
252253 Due to the complexity of supporting snap-ins and their lack of usage in the community, we no longer
253 −support custom snap-ins in PowerShell (core).
254 +support custom snap-ins in PowerShell.
254255
255256 [snapin]: /powershell/module/microsoft.powershell.core/about/about_pssnapins
256257
⋯ 191 unchanged lines
448449 ### Check `system32` for compatible built-in modules on Windows
449450
450451 In the Windows 10 1809 update and Windows Server 2019, we updated a number of built-in PowerShell
451 −modules to mark them as compatible with PowerShell (core).
452 +modules to mark them as compatible with PowerShell.
452453
453454 When PowerShell starts up, it automatically includes `$windir\System32` as part of the
454455 `PSModulePath` environment variable. However, it only exposes modules to `Get-Module` and
⋯ 306 unchanged lines
761762 HTTPS. PSRP on macOS only supports Basic Auth over HTTPS. Kerberos-based authentication is not
762763 supported for non-Windows platforms.
763764
764 −PowerShell (core) also supports PowerShell Remoting (PSRP) over SSH on all platforms (Windows, macOS,
765 −and Linux). For more information, see
765 +PowerShell also supports PowerShell Remoting (PSRP) over SSH on all platforms (Windows, macOS, and
766 +Linux). For more information, see
766767 [SSH remoting in PowerShell](/powershell/scripting/learn/remoting/SSH-Remoting-in-PowerShell-Core).
767768
768 −### PowerShell Direct for Containers tries to use PowerShell (core) first
769 +### PowerShell Direct for Containers tries to use `pwsh` first
769770
770771 [PowerShell Direct](/virtualization/hyper-v-on-windows/user-guide/powershell-direct) is a feature of
771772 PowerShell and Hyper-V that allows you to connect to a Hyper-V VM or Container without network
⋯ 72 unchanged lines
844845
845846 ## Telemetry can only be disabled with an environment variable
846847
847 −PowerShell (core) sends basic telemetry data to Microsoft when it is launched. The data includes the
848 −OS name, OS version, and PowerShell version. This data allows us to better understand the
849 −environments where PowerShell is used and enables us to prioritize new features and fixes.
848 +PowerShell sends basic telemetry data to Microsoft when it is launched. The data includes the OS
849 +name, OS version, and PowerShell version. This data allows us to better understand the environments
850 +where PowerShell is used and enables us to prioritize new features and fixes.
850851
851852 To opt-out of this telemetry, set the environment variable `POWERSHELL_TELEMETRY_OPTOUT` to `true`,
852853 `yes`, or `1`. We no longer support deletion of the file
⋯ 1 unchanged line

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 18:27 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 22:55 UTC · 258 of 260 readable · 256 fully read · documentation 416/439 current