From 2c0fc87221b9a4f22db2400fad678664e979d40c Mon Sep 17 00:00:00 2001
From: surfingoldelephant
<151538956+surfingoldelephant@users.noreply.github.com>
Date: Sun, 28 Dec 2025 01:13:47 +0000
Subject: [PATCH 1/3] Clarify experimental feature is mainstream
Previous verbiage in about_Pipelines wasn't clear that
PSNativeCommandPreserveBytePipe is mainstream in PS 7.4.
---
.../About/about_Pipelines.md | 20 +++++++++----------
.../About/about_Pipelines.md | 20 +++++++++----------
.../About/about_Pipelines.md | 20 +++++++++----------
3 files changed, 27 insertions(+), 33 deletions(-)
diff --git a/reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md b/reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md
index fb66f53c097..d6819c9e561 100644
--- a/reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md
+++ b/reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md
@@ -1,7 +1,7 @@
---
description: Combining commands into pipelines in the PowerShell
Locale: en-US
-ms.date: 10/02/2025
+ms.date: 12/28/2025
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_pipelines?view=powershell-7.4&WT.mc_id=ps-gethelp
schema: 2.0.0
title: about_Pipelines
@@ -400,17 +400,15 @@ one at a time.
## Using native commands in the pipeline
PowerShell allows you to include native external commands in the pipeline.
-However, it's important to note that PowerShell's pipeline is object-oriented
-and doesn't support raw byte data.
-Piping or redirecting output from a native program that outputs raw byte data
-converts the output to .NET strings. This conversion can cause corruption of
-the raw data output.
+Before PowerShell 7.4, piping or redirecting output from a native program that
+outputs raw byte data converted the output to .NET strings. This conversion
+caused corruption of the raw data output.
-However, PowerShell 7.4 added the `PSNativeCommandPreserveBytePipe`
-experimental feature that preserves byte-stream data when redirecting the
-**stdout** stream of a native command to a file or when piping byte-stream data
-to the **stdin** stream of a native command.
+In PowerShell 7.4 or higher, the `PSNativeCommandPreserveBytePipe` experimental
+feature is mainstream. This feature preserves byte-stream data when
+redirecting the **stdout** stream of a native command to a file or when piping
+byte-stream data to the **stdin** stream of a native command.
For example, using the native command `curl` you can download a binary file and
save it to disk using redirection.
@@ -616,7 +614,7 @@ Get-Process | Where-Object CPU | Where-Object Path
```
> [!IMPORTANT]
-> When working interactively in the shell, pasting code with pipelines at the
+> When working interactively in the shell, paste code with pipelines at the
> beginning of a line only when using Ctrl+V to paste.
> Right-click paste operations insert the lines one at a time. Since the line
> doesn't end with a pipeline character, PowerShell considers the input to be
diff --git a/reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md b/reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md
index f4a6950b0c5..5e0d13dc4a8 100644
--- a/reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md
+++ b/reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md
@@ -1,7 +1,7 @@
---
description: Combining commands into pipelines in the PowerShell
Locale: en-US
-ms.date: 10/02/2025
+ms.date: 12/28/2025
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_pipelines?view=powershell-7.5&WT.mc_id=ps-gethelp
schema: 2.0.0
title: about_Pipelines
@@ -400,17 +400,15 @@ one at a time.
## Using native commands in the pipeline
PowerShell allows you to include native external commands in the pipeline.
-However, it's important to note that PowerShell's pipeline is object-oriented
-and doesn't support raw byte data.
-Piping or redirecting output from a native program that outputs raw byte data
-converts the output to .NET strings. This conversion can cause corruption of
-the raw data output.
+Before PowerShell 7.4, piping or redirecting output from a native program that
+outputs raw byte data converted the output to .NET strings. This conversion
+caused corruption of the raw data output.
-However, PowerShell 7.4 added the `PSNativeCommandPreserveBytePipe`
-experimental feature that preserves byte-stream data when redirecting the
-**stdout** stream of a native command to a file or when piping byte-stream data
-to the **stdin** stream of a native command.
+In PowerShell 7.4 or higher, the `PSNativeCommandPreserveBytePipe` experimental
+feature is mainstream. This feature preserves byte-stream data when
+redirecting the **stdout** stream of a native command to a file or when piping
+byte-stream data to the **stdin** stream of a native command.
For example, using the native command `curl` you can download a binary file and
save it to disk using redirection.
@@ -616,7 +614,7 @@ Get-Process | Where-Object CPU | Where-Object Path
```
> [!IMPORTANT]
-> When working interactively in the shell, pasting code with pipelines at the
+> When working interactively in the shell, paste code with pipelines at the
> beginning of a line only when using Ctrl+V to paste.
> Right-click paste operations insert the lines one at a time. Since the line
> doesn't end with a pipeline character, PowerShell considers the input to be
diff --git a/reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md b/reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md
index 3b5ba1acf08..ca7c3df36c3 100644
--- a/reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md
+++ b/reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md
@@ -1,7 +1,7 @@
---
description: Combining commands into pipelines in the PowerShell
Locale: en-US
-ms.date: 10/02/2025
+ms.date: 12/28/2025
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_pipelines?view=powershell-7.6&WT.mc_id=ps-gethelp
schema: 2.0.0
title: about_Pipelines
@@ -400,17 +400,15 @@ one at a time.
## Using native commands in the pipeline
PowerShell allows you to include native external commands in the pipeline.
-However, it's important to note that PowerShell's pipeline is object-oriented
-and doesn't support raw byte data.
-Piping or redirecting output from a native program that outputs raw byte data
-converts the output to .NET strings. This conversion can cause corruption of
-the raw data output.
+Before PowerShell 7.4, piping or redirecting output from a native program that
+outputs raw byte data converted the output to .NET strings. This conversion
+caused corruption of the raw data output.
-However, PowerShell 7.4 added the `PSNativeCommandPreserveBytePipe`
-experimental feature that preserves byte-stream data when redirecting the
-**stdout** stream of a native command to a file or when piping byte-stream data
-to the **stdin** stream of a native command.
+In PowerShell 7.4 or higher, the `PSNativeCommandPreserveBytePipe` experimental
+feature is mainstream. This feature preserves byte-stream data when
+redirecting the **stdout** stream of a native command to a file or when piping
+byte-stream data to the **stdin** stream of a native command.
For example, using the native command `curl` you can download a binary file and
save it to disk using redirection.
@@ -616,7 +614,7 @@ Get-Process | Where-Object CPU | Where-Object Path
```
> [!IMPORTANT]
-> When working interactively in the shell, pasting code with pipelines at the
+> When working interactively in the shell, paste code with pipelines at the
> beginning of a line only when using Ctrl+V to paste.
> Right-click paste operations insert the lines one at a time. Since the line
> doesn't end with a pipeline character, PowerShell considers the input to be
From 76baae28e9bd719934f71fe08d3a33028b97c258 Mon Sep 17 00:00:00 2001
From: surfingoldelephant
<151538956+surfingoldelephant@users.noreply.github.com>
Date: Sun, 28 Dec 2025 01:18:32 +0000
Subject: [PATCH 2/3] Fix wrong feature link in 7.4 release notes
PSNativeCommandPreserveBytePipe was using the wrong link reference
(10 rather than 11).
The linked doc has also been changed to `about_Pipelines`, as this
explicitly mentions the (now mainstream) feature by name.
---
.../docs-conceptual/whats-new/What-s-New-in-PowerShell-74.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-74.md b/reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-74.md
index b03ff2ad290..f89c2f4c495 100644
--- a/reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-74.md
+++ b/reference/docs-conceptual/whats-new/What-s-New-in-PowerShell-74.md
@@ -27,7 +27,7 @@ For a complete list of changes, see the [CHANGELOG][chg] in the GitHub repositor
- Output from `Test-Connection` now includes more detailed information about TCP connection tests
- .NET introduced changes that affected `Test-Connection`. The cmdlet now returns an error about
the need to use `sudo` on Linux platforms when using a custom buffer size ([#20369][20369])
-- Experimental feature [PSNativeCommandPreserveBytePipe][10] is now mainstream. PowerShell now
+- Experimental feature [PSNativeCommandPreserveBytePipe][11] is now mainstream. PowerShell now
preserves the byte-stream data when redirecting the **stdout** stream of a native command to a
file or when piping byte-stream data to the stdin stream of a native command.
- Change how relative paths in `Resolve-Path` are handled when using the **RelativeBasePath**
@@ -232,7 +232,7 @@ For more information about the Experimental Features, see [Using Experimental Fe
[08]: /powershell/module/microsoft.powershell.core/about/about_ansi_terminals
[09]: /powershell/module/microsoft.powershell.core/about/about_preference_variables#psnativecommandargumentpassing
[10]: /powershell/module/microsoft.powershell.core/about/about_preference_variables#psnativecommanduseerroractionpreference
-[11]: /powershell/module/microsoft.powershell.core/about/about_redirection?view=powershell-7.4&preserve-view=true#redirecting-output-from-native-commands
+[11]: /powershell/module/microsoft.powershell.core/about/about_pipelines#using-native-commands-in-the-pipeline
[12]: /powershell/module/microsoft.powershell.psresourceget
[13]: /powershell/module/psreadline
[14]: https://json-schema.org/understanding-json-schema/reference/schema
From 564b686268cc68ba1ea11ea2884abf41e047f25b Mon Sep 17 00:00:00 2001
From: "Mikey Lombardi (He/Him)"
Date: Fri, 2 Jan 2026 12:48:26 -0600
Subject: [PATCH 3/3] Apply suggestions from review
---
.../7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md | 2 +-
.../7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md | 2 +-
.../7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md b/reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md
index d6819c9e561..75ad2ab87ab 100644
--- a/reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md
+++ b/reference/7.4/Microsoft.PowerShell.Core/About/about_Pipelines.md
@@ -614,7 +614,7 @@ Get-Process | Where-Object CPU | Where-Object Path
```
> [!IMPORTANT]
-> When working interactively in the shell, paste code with pipelines at the
+> When working interactively in the shell, pasting code with pipelines at the
> beginning of a line only when using Ctrl+V to paste.
> Right-click paste operations insert the lines one at a time. Since the line
> doesn't end with a pipeline character, PowerShell considers the input to be
diff --git a/reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md b/reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md
index 5e0d13dc4a8..2b1a48b94ee 100644
--- a/reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md
+++ b/reference/7.5/Microsoft.PowerShell.Core/About/about_Pipelines.md
@@ -614,7 +614,7 @@ Get-Process | Where-Object CPU | Where-Object Path
```
> [!IMPORTANT]
-> When working interactively in the shell, paste code with pipelines at the
+> When working interactively in the shell, pasting code with pipelines at the
> beginning of a line only when using Ctrl+V to paste.
> Right-click paste operations insert the lines one at a time. Since the line
> doesn't end with a pipeline character, PowerShell considers the input to be
diff --git a/reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md b/reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md
index ca7c3df36c3..8dbe33db125 100644
--- a/reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md
+++ b/reference/7.6/Microsoft.PowerShell.Core/About/about_Pipelines.md
@@ -614,7 +614,7 @@ Get-Process | Where-Object CPU | Where-Object Path
```
> [!IMPORTANT]
-> When working interactively in the shell, paste code with pipelines at the
+> When working interactively in the shell, pasting code with pipelines at the
> beginning of a line only when using Ctrl+V to paste.
> Right-click paste operations insert the lines one at a time. Since the line
> doesn't end with a pipeline character, PowerShell considers the input to be