PowerShell / PowerShell/PowerShell

$PSVersionTable does not correctly implement ToString, causing issues with Set-Clipboard

Open
#20,128 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Needs-Triage
Dominant language
C#
Stars
55.5k
Forks
8.5k
Avg merge
1d 2h
Merged PRs (30d)
88

Description

Prerequisites
Steps to reproduce

Since #18116 has been implemented, I have tried to use it when filling out issues on my remote setup, but I need to pipe it via Out-String for it to work properly. This seems to be caused by it not implementing ToString() correctly, instead relying on formatters to display its information.

Expected behavior
> $PSVersionTable | Set-Clipboard
> Get-Clipboard # Ctrl+Shift+V
Name                           Value
----                           -----
PSVersion                      7.4.0-preview.4
PSEdition                      Core
GitCommitId                    7.4.0-preview.4
OS                             Ubuntu 22.04.2 LTS
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
Actual behavior
> $PSVersionTable | Set-Clipboard
> Get-Clipboard
System.Management.Automation.PSVersionHashTable
Error details

No response

Environment data
Name                           Value
----                           -----
PSVersion                      7.4.0-preview.4
PSEdition                      Core
GitCommitId                    7.4.0-preview.4
OS                             Ubuntu 22.04.2 LTS
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
Visuals

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the reported pipeline with $PSVersionTable, Set-Clipboard, and Get-Clipboard, then trace the PSVersionHashTable type and its string conversion behavior. Done means piping $PSVersionTable directly to Set-Clipboard produces the formatted name-and-value output shown under Expected behavior, without requiring Out-String.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, powershell
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.