Prerequisites
Steps to reproduce
The currently provided updatable help files lack certain annotations, making the help information not reader-friendly. This issue also reproduced on Windows PowerShell 5.1. (See $PSVersionTable section.)
Use the ZIP version of PowerShell 7.5.2 on Windows 11 version 24H2.
- Run
Get-Help Get-Help and observe the output (excerpt below):
NAME
Get-Help
SYNTAX
Get-Help [[-Name] <string>] [-Path <string>] [-Category {Alias | Cmdlet | Provider | General | FAQ | Glossary | HelpFile | ScriptCommand |
Function | Filter | ExternalScript | All | DefaultHelp | DscResource | Class | Configuration}] [-Full] [-Component <string[]>]
[-Functionality <string[]>] [-Role <string[]>] [<CommonParameters>]
- Run
Update-Help -Force -Scope CurrentUser; Get-Help Get-Help on 2025-09-09 (or any time before this issue is resolved) and observe the output (excerpt below):
NAME
Get-Help
SYNOPSIS
Displays information about PowerShell commands and concepts.
SYNTAX
Get-Help [-Category <System.String[]>] [-Component <System.String[]>] [-Full <System.Management.Automation.SwitchParameter>]
[-Functionality <System.String[]>] [[-Name] <System.String>] [-Path <System.String>] [-Role <System.String[]>] [<CommonParameters>]
- Run
Function Use-MyFunction
{
[CmdletBinding()]
Param
(
[string[]]$a,
[switch]$b,
[ValidateSet('u', 'v', 'w')][string]$c
)
Begin { }
}
Get-Help Use-MyFunction
and observe the output (excerpt below):
NAME
Use-MyFunction
SYNTAX
Use-MyFunction [[-a] <string[]>] [[-c] {u | v | w}] [-b] [<CommonParameters>]
Expected behavior
In step 1, the output is reader-friendly as expected:
- Common type names such as
System.String are abbreviated, e.g., string.
- A parameter with
ValidateSet displays the candidate values (see Category).
- A switch parameter is simply shown as
-ParameterName (mandatory, often for parameter set overload resolution) or [-ParameterName] (non-mandatory).
In step 2, the output should also be user-friendly.
In step 3, the output is indeed user-friendly.
Actual behavior
In step 2, the observed output is terrible:
- Common types lose abbreviation.
- Parameters with
ValidateSet does not list candidates.
- Switch parameters are shown as
-ParameterName <System.Management.Automation.SwitchParameter>.
Error details
Note that step 3 still produces good output, which means PowerShell still generates good help information from cmdlet attributes. The issue is caused by updatable help XML files.
I put the relevant files and analysis in my repo GeeLaw/PowerShell-HelpFile-Bug. Long story short: The most recent version of updatable help files hosted on Microsoft servers lack certain annotations.
To my knowledge, the last known good version is on 2016-11-28, which I downloaded on 2019-09-21. I discovered the issue with 2025-09-08 version on 2025-09-09, when I tried to update help for a new machine.
Environment data
Name Value
---- -----
PSVersion 7.5.2
PSEdition Core
GitCommitId 7.5.2
OS Microsoft Windows 10.0.26100
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
This issue also reproduces on Windows PowerShell 5.1. I don't want to use Feedback Hub app because I have lost faith in it. Also, my guess is that there isn't a separate team for handling online updatable help files for Windows PowerShell vs PowerShell, so an issue here should be sufficient. The Windows PowerShell 5.1 $PSVersionTable output is
Name Value
---- -----
PSVersion 5.1.26100.3624
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.26100.3624
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Visuals
No response
Prerequisites
Steps to reproduce
The currently provided updatable help files lack certain annotations, making the help information not reader-friendly. This issue also reproduced on Windows PowerShell 5.1. (See
$PSVersionTablesection.)Use the ZIP version of PowerShell 7.5.2 on Windows 11 version 24H2.
Get-Help Get-Helpand observe the output (excerpt below):Update-Help -Force -Scope CurrentUser; Get-Help Get-Helpon 2025-09-09 (or any time before this issue is resolved) and observe the output (excerpt below):and observe the output (excerpt below):
Expected behavior
In step 1, the output is reader-friendly as expected:
System.Stringare abbreviated, e.g.,string.ValidateSetdisplays the candidate values (seeCategory).-ParameterName(mandatory, often for parameter set overload resolution) or[-ParameterName](non-mandatory).In step 2, the output should also be user-friendly.
In step 3, the output is indeed user-friendly.
Actual behavior
In step 2, the observed output is terrible:
ValidateSetdoes not list candidates.-ParameterName <System.Management.Automation.SwitchParameter>.Error details
Note that step 3 still produces good output, which means PowerShell still generates good help information from cmdlet attributes. The issue is caused by updatable help XML files.
I put the relevant files and analysis in my repo GeeLaw/PowerShell-HelpFile-Bug. Long story short: The most recent version of updatable help files hosted on Microsoft servers lack certain annotations.
To my knowledge, the last known good version is on 2016-11-28, which I downloaded on 2019-09-21. I discovered the issue with 2025-09-08 version on 2025-09-09, when I tried to update help for a new machine.
Environment data
This issue also reproduces on Windows PowerShell 5.1. I don't want to use Feedback Hub app because I have lost faith in it. Also, my guess is that there isn't a separate team for handling online updatable help files for Windows PowerShell vs PowerShell, so an issue here should be sufficient. The Windows PowerShell 5.1
$PSVersionTableoutput isVisuals
No response