PowerShell

The PowerShell forum accepts bug reports as well as feedback and suggestions. For more information, check out the PowerShell Homepage

The following is a list of the states we use to track items.

status meaning
survey We saw this and we are considering it. Please upvote if it’s important to you.
needs more information We don’t understand the issue and need additional details.
investigating We are looking at this internally to understand things like: scenario, reproduction of issue, costing, or other technical details.
in queue The issue is understood and in our unprioritized backlog. Your votes will be used to drive prioritization of this work.
  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. PowerShell StackOverFlowException: get-childitem -path HKLM:\ -recurse -include *Windows*

    PowerShell has a bug in it which causes a "StackOverFlowException" when running the following command:
    get-childitem -path HKLM:\ -recurse -include Windows

    It was originally reproduced while looking for something different than:
    Windows

    This is consistently reproducible in latest updates applied of Windows 10 x64 Business and Home, with both PowerShell.exe, and ISE, x86 and standard.

    $PSVersionTable.PSVersion

    Major Minor Build Revision


    5 1 16299 98

    2 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  2. We need a proper set of built-in, easy-to-use, dedicated registry cmdlets

    Managing registry keys and values on local and remote systems with PowerShell is a pain.

    Reviewing the articles, forums and blogs on the Internet clearly shows that new PowerShell users struggle to understand how to use registry provider drives and the cmdlets like New-Item, Get-ItemProperty, New-ItemProperty, and so on. This has prompted the creation of a variety of home-brew modules and functions to deal with the problem, like this one, which is extremely useful, but is not built into PowerShell by default of course:

    https://gallery.technet.microsoft.com/RegistryLibrarypsm1-b38a81ba

    PowerShell needs a proper set of built-in, dedicated registry cmdlets that 1) are easy to…

    29 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    4 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  3. Move-Item's -Verbose causes $ErrorActionPreference to be ignored

    Move-Items's -Verbose parameter causes the global $ErrorActionPreference = "Stop" to be ignored. This is a bug. Here's a repro script:

    BugRepro.ps1:

    $ErrorActionPreference = "Stop"
    Write-Host "ErrorActionPreference is $ErrorActionPreference"
    mkdir folder -ErrorAction SilentlyContinue | Out-Null
    "" > a.txt
    Copy-Item a.txt folder
    Write-Host "About to trigger error"
    Move-Item a.txt folder -Verbose | Out-Null
    Write-Host "If you're reading this, then execution didn't stop!"
    Write-Host "Remove the Verbose paramter and it does stop, like it should."

    3 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  4. Command line parsing bug: spaces and trailing slash

    There appears to be a bug parsing arguments to EXEs. If you pass a properly-quoted path that has spaces and a trailing slash, the rest of the command is lumped into the same argument. This also happens if you use a PowerShell variable to hold the path string.

    To repro, first, install EchoArgs.exe (if using chocolatey: cinst -y echoargs). It demonstrates what arguments would get passed to any exe.

    Then run:

    PS> & EchoArgs "C:\spaces and trailing slash" more args

    Echo args shows that it all got lumped into one argument:

    Arg 0 is <C:\spaces and trailing slash" more args>

    6 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  5. [BUG] Drag and drop to scripts shortcuts split paths containing spaces

    Drag and dropping any file to a script shortcut split this path before passing the splitted strings as multiple parameters. Here's my detailed Issue Report :

    Steps to reproduce

    1 - Get any script, for example :
    [samplescript.psd1] :
    ```
    param([string]$path)

     Write-Host($path)
    
    pause


    or a simpler one-line sample:
    Write-Host($args);pause```

    2 - Create a shortcut that runs the script :
    [Shortcut Target ] : PowerShell &quot;path\to\our\samplescript.psd1&quot;

    3- Drag and drop a file containing spaces in its name to the shortcut
    [sample file ] : C:\Some file with spaces.txt

    Expected behavior

    Drag and dropping the file should pass its path to the…

    4 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  6. Add ExportTo-Markdown

    Hi

    Using Markdown is common nowadays in VCS tools like Git for readme files.

    Plus it's handy to get a tabular strcture for better visibility.

    Example use cases:
    - Get-Process output comparison at different dates and time
    - SQL query results in tabular form with column names as headers

    So it'd be someInput|ExportTo-MarkDown

    2 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  7. Out-DataTable

    Creates a DataTable based on an objects properties. Useful for converting any Powershell object into a DataTable which then can be bulk imported into a SQL Server table.

    .EXAMPLE
    $dt = Get-PSDrive | Out-DataTable
    This example creates a DataTable from the properties of Get-Alias and assigns output to $dt variable

    This idea comes from Chad Miller's Out-DataTable: https://gallery.technet.microsoft.com/scriptcenter/4208a159-a52e-4b99-83d4-8048468d29dd#content

    202 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    19 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →

    After much discussion with Aaron Nelson and Chrissy LeMaire, and thanks to the enormous amount of support for this item, we’ve recognized that this is something we need to accomplish, one way or another.

    We don’t want to offer an ETA on this as the work is not well understood by our team yet, and no one currently has immediate bandwidth on starting that investigation. But I want to stress the fact that is an important ask that we’re taking seriously as a priority.

    In the meantime, it would be immensely useful if someone with expertise in the DataTable space could submit an RFC (basically a brief spec) to our PowerShell-RFC repository on GitHub. That way, we can have a discussion about what the design of a ConvertTo-DataTable cmdlet might look like before we dive in on an implementation. The process for doing so is located here: https://github.com/PowerShell/PowerShell-RFC/blob/master/RFC0000-RFC-Process.md#draft

    I…

  8. Write-Host -NoNewLine and Transcription

    Starting with WMF 5.0 the -NoNewLine option for Write-Host is essentially ignored in the transcripts created using Start-Transcript.

    Simple example script:

    Start-Transcript log.txt
    Write-Host -NoNewLine "this should all"
    Write-Host -NoNewLine "be on one line"
    Write-Host -NoNewLine "in the log.txt file"
    Stop-Transcript

    12 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  9. Start-Process is behaving strange when -credential switch is used

    When running Start-Process start-process "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -cred $(Get-Credential) regardless if the credentials differ from the current consoles credentials or the same credentials are used, the new console window seems to be unresponsive, until you switch back to the console from which the new console was launched and start typing something in that console.

    If the same thing is done in ISE, this issue does not occour.

    I have testet this on PS 5.1.14393.206, 5.1.14393.953 and 5.1.14393.693. Windows Server 2012R2, Windows Server 2016 and Windows 10

    Please see the issue in this video: https://goo.gl/8ZvdEV

    4 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  10. Include UTC timestamp as property to error object

    It'd be very helpful to attach a timestamp of when an error occured to an error object. Open to ideas as to whether it should be UTC, local time, ntp, etc.

    6 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  11. Get-Service should return the user account the services are running under

    The Get-Service cmdlet should return the service account associated to each service.

    We can get this information easily from the Win32_Service WMI class, but to me, it should be returned by Get-Service.

    Checked with PS v5 without luck...

    Thanks!

    179 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    7 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  12. No StdOut output on console until second object

    Let me explain. I have a script that is collecting data, and I send it to StdOut by simply piping it into Select (but problem also happens if I add a ForEach loop and simply make [PSCustomObject] objects). Then my script loops to the next server. That output is not displaying on the screen. All is not lost though, when the script loops to the second server and displays both the first and second will now display. When the third server finishes it displays OK, as does the 4th.

    So it looks like it's just the first one. Normally I…

    6 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  13. Allow to be cast Dictionary type with [pscustomobject]

    $d = New-Object 'system.collections.generic.dictionary[string,string]'
    $d.Add("a","1")
    $d.Add("b","2")

    PS > [pscustomobject]$d

    Key Value


    a 1
    b 2

    Preferred output should be:

    PS > New-Object PsObject -Property $d

    a b
    - -
    1 2

    PS > [pscustomobject]@{a=1;b=2}

    a b
    - -
    1 2

    2 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  14. Version Numbering for All Releases

    Please increment the version number for ALL releases, indicate which ones are supported in production, and provide a Get-PSVersionInfo cmdlet as described in http://powershell.org/wp/?p=33342.

    119 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    10 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →

    Hi everyone,

    With PowerShell 6.0, we’ve already begun updating our versioning system to be more descriptive. Right now, PSVersion returns 6.0.0-alpha as a System.Management.Automation.SemanticVersion object (with Major, Minor, Patch, and Label properties), and we’ve also added a GitCommitId property to PSVersionTable that matches perfectly with tags on GitHub: https://github.com/powershell/powershell/tags

    Still, we can definitely continue to improve the semantic version implementation. You can track (and contribute to!) the discussion on these improvements here: https://github.com/PowerShell/PowerShell/issues/2354

    Thanks,
    Joey

  15. Out of the box support for YAML like csv / xml / json

    Votes from Connect: 25

    Original Date Submitted: 4/16/2015 7:34:07 PM

    Description:
    Contact Information
    Handle: ducke
    Site Name: PowerShell
    Feedback ID: 1252364


    Problem Description:
    In the "DevOps" world, YAML is a first class citizien in products like Kitchen CI, Elasticsearch, Appveyor, Travis CI, rubocop etc.
    It would be great to have commands similar to https://github.com/dfinke/PowerYaml native without the need to import a module.

    Product Studio item created by Connect Synchronizer due to creation of feedback ID 1252364 (http://connect.microsoft.com/PowerShell/feedback/ViewFeedback.aspx?FeedbackID=1252364).

    Repro Steps:

    Internal BugId: 14385

    141 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  16. Bug in Show-Command

    Scriptblock parameters are interpreted as a [bool] value and is shown as a listbox with values $true or $false

    Code to reproduce:

    Show-Command -Name Invoke-Command

    Scriptblock parameter is shown as a [bool] listbox

    Cheers

    Tore

    15 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    survey  ·  1 comment  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  17. Add a "Compile" verb

    PowerShell needs a Compile verb, especially in a world of DevOps. Looking at the approved verb list, there are mediocre subtitutes that could be used in its place (Start-Compilation, Invoke-Compile, etc.), but these all use an inappropriate verb with the a variant of the verb in the noun. When the verb is finding its way into the noun, it's time for a new verb. Please add Compile to the list of approved verbs in an upcoming release.

    56 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    9 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
    survey  ·  Zachary Alexander responded

    Thank you for your input. Based on its current ranking compared to other feedback items and product schedule, work on this item is pending (and will be driven by) further customer input.

  18. Allow splatting without an intermediate variable.

    instead of
    $splat = @{name = "value"}
    verb-noun @splat

    Allow verb-noun @{name = "value"}

    This would make for a much cleaner and more natural look to parameters. Letting them be in the usual place of after and below the function.

    There is a stackoverflow question relating to this, that should explain it more - http://stackoverflow.com/questions/35188172/why-do-i-need-to-splat-to-a-variable-first

    51 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    16 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
    survey  ·  Zachary Alexander responded

    Thank you for your input. Based on its current ranking compared to other feedback items and product schedule, work on this item is pending (and will be driven by) further customer input. If you did not open this issue and are also impacted by it, please vote this item up.

  19. Sort properties alphabetically

    Please make cmdlet results (e.g. Format-List) sort results automatically by properties in alphabetical order.

    Certain cmdlets do this, such as get-member. I don't understand why all cmdlets do not do this, or at least not have an option to do this.

    When I am searching for information I readily do not know (e.g. what properties are available and which values may be assigned to them), it makes it very difficult to find what I need when I have to look at a bunch of properties that are seemingly sorted in some sort of random order.

    3 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  20. Add ability to cancel Intellisense engine results

    Right now, if an exception occurs in the argument completer, then it immediately returns, and "falls back" to the built-in filesystem / item-based auto-completion. If an exception occurs in my custom argument completers, I'd rather be able to cancel auto-completion altogether, rather than have a bunch of useless results be thrown at the user.

    23 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Feedback and Knowledge Base