Skip to content

Updatable help provided on Microsoft servers since 2025-09-08 are bad and Get-Help gives reader-unfriendly output after Update-Help #818

@GeeLaw

Description

@GeeLaw

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.

  1. 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>]
  1. 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>]
  1. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-MAMLIssue concerns conversion to MAML

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions