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. Find-Module needs improvements to enable better discoverability

    Votes from Connect: 3

    Original Date Submitted: 11/3/2015 7:38:42 PM

    Description:
    Contact Information
    Handle: Ryan Yates 90
    Site Name: PowerShell
    Feedback ID: 1976168


    Frequency: Always Happens
    Regression: Yes, this happens in all previous versions

    Problem Description:
    The Find-module command needs some further improvements to allow there to be better discoverability of functions and Modules including the ability to search for functions using Wildcards and also to get back results based on the functions Synopsis, Description, Function Name, Notes & Examples

    An example of a better formatted Find-Module command could be

    Find-Module -Command 'SharePoint' and this should return all…

    8 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 →
  2. Powershell rm -rec traverses symbolic links and removes items in target

    Votes from Connect: 24

    Original Date Submitted: 2/29/2012 11:46:46 PM

    Description:
    Contact Information
    Handle: Jason R. Coombs
    Site Name: PowerShell
    Feedback ID: 727149


    Frequency: Always Happens
    Regression: Yes, this happens in all previous versions

    Problem Description:
    It's apparently not possible to simply remove symbolic links to directories using Powershell. Instead, Powershell recursively removes the children. For example:

    cmd /c mklink /d MyWindows C:\Windows

    If you try to remove MyWindows using Powershell, it prompts to delete children, and if you confirm (or if -rec was supplied), it attempts to remove everything in the C:\Windows directory. I don't suppose I have to…

    8 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 →
  3. BUG: Error 0xC0000142 / -1073741502 when running command line apps from PS script on Win10

    My organisation is having problems running a PowerShell-based build script on Windows 10. We're seeing frequent 0xC0000142 / -1073741502 errors when spawning command-line executables from the build script.


    C:\Source\Build\packages\Tools.Subversion.1.8.8.1\tools\svn.exe info --xml "C:\Source" --non-interactive --trust-server-cert' to retrieve current SVN branch URL

        svn.exe returned exit code -1073741502
    
    At C:\Source\Build\BuildScript.ps1:48 char:35
    + ... tExitCode -ne 0) { throw "svn.exe returned exit code $LastExitCode" }
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : OperationStopped: (svn.exe returned exit code
    -1073741502:String) [], RuntimeException
    + FullyQualifiedErrorId : svn.exe returned exit code -1073741502

    This issue was supposedly fixed on Windows 7 / Server 2008 R2 by KB2701373, but appears to have…

    4 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 →
  4. Invoke-command does not return output from modules on v2 targets

    I have the following PS module (testme.psm1) saved to a properly-named folder on Win7 (powershell v2) and Win8.1 (powershell v4) machines:

    requires -version 2.0

    function Test-Output {

    [CmdletBinding()]
    
    Param ()

    Write-Output "Test-Output SUCCESS"
    Write-Verbose "Test-Output VERBOSE SUCCESS"

    }

    When I test it from a Win10 (PS v5) system, output is as follows:

    PS> invoke-command win7 {import-module testme;test-output}
    (no output)

    PS> invoke-command win7 {import-module testme;test-output -verbose}
    (no output)

    PS> invoke-command win81 {import-module testme;test-output}
    Test-Output SUCCESS

    PS> invoke-command win81 {import-module testme;test-output -verbose}
    Test-Output SUCCESS
    VERBOSE: Test-Output VERBOSE SUCCESS

    PS>

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

    We’ll send you updates on this idea

    planned  ·  2 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  5. Multiple parameter types are allowed. Is it a feature or defect?

    Here is a valid PowerShell code with a parameter declared with several types. Is it a feature or defect?

    This example works and gets String, the first type.


    function Test1 {
    
    param(
    [string][int][double][long]$MyParam
    )
    $MyParam.GetType().Name
    }

    # String
    Test1 42


    This example tries to convert to the second type Hashtable and fails, of course.


    function Test1 {
    
    param(
    [string][hashtable]$MyParam
    )
    $MyParam.GetType().Name
    }

    # String
    Test1 42

    1 vote
    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 →
  6. The ValidatePattern attribute should have a failure message optional parameter

    Votes from Connect: 12

    Original Date Submitted: 6/20/2015 2:22:53 AM

    Description:
    Contact Information
    Handle: Joel 'Jaykul' Bennett
    Site Name: PowerShell
    Feedback ID: 1450924


    Problem Description:
    The error messages from ValidatePattern include the regular expression as the only indication of what was actually expected, and are therefore unusable (nearly everyone agrees that you should use ValidateScript instead and provide a useful error message).

    It would be much better if the attribute had a named parameter (like the RegexOptions) to allow specifying a custom error message (or at least, a custom description of what the regex pattern is checking for, which could…

    5 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 →
  7. Cmdlet to validate a JSON string against a JSON schema

    Votes from Connect: 7

    Original Date Submitted: 3/5/2015 10:18:32 PM

    Description:
    Contact Information
    Handle: Jamie Thomson
    Site Name: PowerShell
    Feedback ID: 1162436


    Frequency: Always Happens
    Regression: Yes, this happens in previous released versions

    Problem Description:
    JSON is supported quite well today in PowerShell via ConfertFrom-JSON & ConvertTo-Json. there are gaps though.

    JSON schema is to JSON what XML schema is to XML (see http://json-schema.org/ for more details). it would be really nice to have a cmdlet in powerShell (it might be called Check-JsonSchema, or perhaps Test-jsonSchema) to which I pass a JSON snippet and a JSON schema definition and the…

    7 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 →
  8. Make the foreach statement work with a pipeline

    Votes from Connect: 29

    Original Date Submitted: 7/21/2011 4:50:05 AM

    Description:
    Contact Information
    Handle: Joel -Jaykul- Bennett
    Site Name: PowerShell
    Feedback ID: 680120


    Frequency: Always Happens
    Regression: No, this is new to the most recent version

    Problem Description:
    Can we please make foreach(){} work on the pipeline?

    It obviously has output, this works (in version 2):

    $x = foreach($i in 1..5) { $i }
    
    $x | Write-Host

    And so does this:

    ($null = foreach($i in 1..5) { $i }) | Write-Host
    

    But this throws a parse error about a "empty pipe element"

    foreach($i in 1..5) { $i } | write-host
    
    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 →
  9. Support regex modifier operator =~ from perl

    Votes from Connect: 4

    Original Date Submitted: 5/29/2015 1:15:18 AM

    Description:
    Contact Information
    Handle: Joel 'Jaykul' Bennett
    Site Name: PowerShell
    Feedback ID: 1377277


    Problem Description:
    Just make =~ equivalent to -replace so these two commands mean the same thing:

    $String = $string -replace $pattern,"newtext"
    $String =~ $pattern,"newtext"

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

    Repro Steps:

    Internal BugId: 14523

    6 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 →
  10. CLiXML - [System.Management.Automation.PSSerializer]::Deserialize fails to recreate [scriptblock] type

    Votes from Connect: 3

    Original Date Submitted: 3/25/2015 2:05:25 PM

    Description:
    Contact Information
    Handle: jchrbolka
    Site Name: PowerShell
    Feedback ID: 1202386


    Frequency: PowerShell
    Regression: $sb = [scriptblock]::Create("write-host 'Hello world!'")

    $sb.gettype()

    $sb_ser = System.Management.Automation.PSSerializer::Serialize($sb)

    $sb_ser

    $sbdes = System.Management.Automation.PSSerializer::Deserialize($sbser)

    $sb_des.gettype()

    Problem Description:
    $sb = [scriptblock]::Create("write-host 'Hello world!'")

    $sb.gettype()

    This returns:

    IsPublic IsSerial Name BaseType


    True True ScriptBlock System.Object

    $sb_ser = System.Management.Automation.PSSerializer::Serialize($sb)

    $sb_ser

    Looks like this:
    <Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
    <SBK>write-host 'Hello world!'</SBK>
    </Objs>

    $sbdes = System.Management.Automation.PSSerializer::Deserialize($sbser)

    $sb_des.gettype()

    IsPublic IsSerial Name BaseType


    True True String System.Object

    Product Studio item created by Connect Synchronizer due…

    6 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 →
  11. powershell should have a [json] accelerator

    Votes from Connect: 25

    Original Date Submitted: 11/14/2014 6:10:38 AM

    Description:
    Contact Information
    Handle: Oisín Grehan
    Site Name: PowerShell
    Feedback ID: 1029193


    Frequency: Always Happens
    Regression: I don't know if this issue existed previously

    Problem Description:
    JSON is taking a greater role these days in many places: rest, asp.net vnext etc. It would be nice to be able to use an accelerator as a shortcut to using the convertfrom-json cmdlet. e.g.

    ps> $obj = [json]"{ x: 1; y: 2}"
    ps> $obj.x
    1

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

    Repro…

    6 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 →
  12. 'Set-Service -Status Stopped' fails with "Cannot stop service 'servicename' because it is dependent on other services‏

    Votes from Connect: 27

    Original Date Submitted: 10/26/2011 8:07:49 PM

    Description:
    Contact Information
    Handle: Jonathan Medd
    Site Name: PowerShell
    Feedback ID: 696786


    Frequency: Always Happens
    Regression: I don't know if this issue existed previously

    Problem Description:
    Using Set-Service on remote machines to set a service to be Stopped, e.g.

    Set-Service -ComputerName Server01 -Name spooler -Status stopped

    fails to stop the service on those with dependent services. The error is "Set-Service : Cannot stop service 'Print Spooler (spooler)' because it is dependent on other services."

    This service stops without issue from the GUI or from net stop spooler. Using

    Stop-Service Spooler

    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 →
  13. Write-Error in a cmdlet should output more like PSCmdlet.WriteError

    It's a lot of work to call $PSCmdlet.WriteError or $PSCmdlet.ThrowTerminatingError -- I hate having to do it.

    Write-Error should support customizing the error and even throwing terminating errors so that we can do less of this.

    See for example the "ThrowError" function in Microsoft's PowerShellGet\PSGet.psm1 module.

    More and more modules are including a wrapper function like this to clean up error messages, and it's silly and unnecessary -- the functionality should be built into Write-Error.

    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 →
  14. Powershell 5 on windows 10

    Please release an update for the Windows 10 Powershell 5.0 preview release, so we can play with it without the need of Server OS.

    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 →
  15. 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 →
  16. Add color to support to cmdlets like Get-ChildItem

    One of the things I miss the most when using PowerShell versus Bash or ZSH or Fish is color support for commands like ls. It'd be nice to be able to have color support for built-in cmdlets, preferably without having to build a wrapper that depends on Write-Host.

    One way I could see this possibly working is by adding a color option to the ps1xml format file for an object. It might be difficult to make this work across multiple hosts, but the benefits of keeping it in the ps1xml file would be that the output from the cmdlet would…

    5 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 →
  17. Provide a true "pause" function in PowerShell that works both in PowerShell console and PowerShell ISE

    Votes from Connect: 4

    Original Date Submitted: 10/24/2015 12:51:25 AM

    Description:
    Contact Information
    Handle: vs2015junkie
    Site Name: PowerShell
    Feedback ID: 1934336


    Problem Description:
    The current method for pausing a PowerShell script requires the following code:

    $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

    The problem with this is that this functionality does not work when running PowerShell scripts from within PowerShell ISE.

    However, as most PowerShell developers frequently work in the PowerShell ISE, this severely limits the usability of the PowerShell ISE since not all functionality is provided the same in the PowerShell ISE as in the normal PowerShell console.

    Therefore, Microsoft should simply provide…

    5 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 →
  18. Get-Process pipeline binding of the ComputerName parameter doesn't work properly

    Votes from Connect: 4

    Original Date Submitted: 3/7/2015 5:50:50 AM

    Description:
    Contact Information
    Handle: David Wyatt
    Site Name: PowerShell
    Feedback ID: 1164861


    Frequency: Always Happens
    Regression: I do not know if this issue existed previously

    Problem Description:
    When you pipe multiple values to the ComputerName parameter of Get-Process (by property name), you wind up with multiple copies of the process data for the first computer that was piped in. This is because of how the data in Microsoft.PowerShell.Commands.ProcessBaseCommand.AllProcesses gets cached; the data is only fetched on the first access of that property, and subsequent accesses just return the original set…

    5 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 →
  19. PowerShell's wildcard implementation is security hole prone

    Votes from Connect: 4

    Original Date Submitted: 8/21/2014 3:18:39 PM

    Description:
    Contact Information
    Handle: Derp McDerp
    Site Name: PowerShell
    Feedback ID: 951518


    Frequency: Always Happens
    Regression: Yes, this happens in all previous versions

    Problem Description:
    I ran into a subtle problem with wildcards in a cmdlet I wrote and investigated further by reading PowerShell's source in ILSpy and the PowerShell v3 language spec and discovered a lot of brokenness with the way PowerShell currently works.

    To start with, the grammar for PowerShell's wildcards is too loose (and not formally documented!) which can lead to various security problems. The System.Management.Automation.WildcardPattern class…

    4 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. .NET interfaces are not directly accessible from PowerShell

    Votes from Connect: 23

    Original Date Submitted: 7/29/2014 5:33:21 AM

    Description:
    Contact Information
    Handle: Trevor Sullivan
    Site Name: PowerShell
    Feedback ID: 931492


    Frequency: Always Happens
    Regression: Yes, this happens in all previous versions

    Problem Description:
    When a .NET method returns a .NET interface, PowerShell ignores the interface and its members, and instead "looks at" the underlying object.

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

    Repro Steps:
    $PersonClass = @'
    using System;

    public class Person : ICloneable {

    string FirstName { get; set; }
    
    string LastName { get; set; }

    public…

    5 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 →
  • Don't see your idea?

Feedback and Knowledge Base