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. Provide means to qualify Script names to avoid conflicts

    Hello!

    The PowerShell Gallery currently qualifies 'Scripts' by name only. For example, if someone has already published Some-Script, I have no way to publish my own Some-Script, even if the original is related only in name, has major functional differences, etc.

    It would be helpful to allow qualifying these. Perhaps resolve by date published first (i.e. compatible with current system), while allowing qualification by username, similar to how GitHub handles this.

    Thus, I could install RamblingCookieMonster\Some-Script, even if EvilDoer\Some-Script already existed.

    The same design could also be extended to modules, although those seem less likely to conflict (this may change…

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

    We’ll send you updates on this idea

    survey  ·  4 comments  ·  PowerShell Gallery  ·  Flag idea as inappropriate…  ·  Admin →
  2. ConvertTo-Json doesn't serialize simple objects properly

    Given a simple array which has been boxed in a PSObject

    [PSObject]$o = @(@(Foo,1),@(Bar,2))

    Calling ConvertTo-Json returns a weird pointless wrapper around it:

    convertto-json $o
    {

    "value":  [
    
    [
    "Foo",
    1
    ],
    [
    "Bar",
    2
    ]
    ],
    "Count": 2

    }

    Which completely breaks round-trip support

    ConvertFrom-Json (Convertto-Json $o)

    value Count


    {Foo 1, Bar 2} 2

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

    We’ll send you updates on this idea

    survey  ·  14 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  3. Bug: Console output appears out of order

    In 5.0, objects returned from a script will appear in the console only after the script has completely finished if no formatting data is defined for that object type.

    Example:

    Write-Warning "Before"
    
    Get-Service E* | select Status, Name, DisplayName
    Write-Warning "After"

    Output:

    WARNING: Before
    
    

    WARNING: After
    Status Name DisplayName
    ------ ---- -----------
    Stopped EapHost Extensible Authentication Protocol
    Running EFS Encrypting File System (EFS)
    Running eventlog Windows Event Log
    Running EventSystem COM+ Event System

    Details
    - This did not happen before PowerShell 5.0
    - This happens both in the PowerShell console and ISE
    - The issue affects all objects that have…

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

    We’ll send you updates on this idea

    survey  ·  3 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  4. Allow LCM to accomodate module dependencies that get installed by earlier steps in the configuration

    Currently, if you have a configuration that installs a Windows feature then has another step that configures settings using a module that gets installed with that particular feature, the LCM fails its check because that module is not currently present on the node.

    For example, we have a configuration that installs the Web-Server role. There are later steps which use the xWebAdministration resource to configure things like Application Pools and Application Pool defaults. The problem is, when the LCM pulls the configuration and runs it's checks, it fails because the xWebAdministration resource uses cmdlets that are present in the WebAdministration…

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

    We’ll send you updates on this idea

    2 comments  ·  Desired State Configuration (DSC)  ·  Flag idea as inappropriate…  ·  Admin →
    investigating  ·  Mark Gray responded

    Thanks for the feedback! This behavior is not by design and is not something I have ever seen before. We will look into it and get back with an answer or more questions.

  5. invoke-webrequest hangs/freeze at many websites

    Powershell 4.0 / IE 11

    Works:
    invoke-webrequest "http://www.google.de"
    GET http://www.google.de with 0-byte payload
    received 189489-byte response ...
    - Result: Microsoft.Powershell.Commands.HtmlWebResponseObject

    Works not:
    invoke-webrequest "http://www.heise.de"
    GET http://www.heise.de with 0-byte payload
    received 179789-byte response ...
    hangs, no success, no result

    invoke-webrequest "http://windows.microsoft.com/en-US/windows-8/system-requirements"
    GET http://windows.microsoft.com/en-US/windows-8/system-requirements with 0-byte payload
    received 91075-byte response ...
    hangs, no success, no result

    the same with -UseBasicParsing

    16 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 →
  6. Invoke-WebRequest hangs in some cases, unless -UseBasicParsing is used

    Votes from Connect: 3

    Original Date Submitted: 7/18/2015 2:03:55 AM

    Description:
    Contact Information
    Handle: sba923
    Site Name: PowerShell
    Feedback ID: 1557783


    Frequency: PowerShell
    Regression: Run:

    $URL='http://windows.microsoft.com/en-US/windows-8/system-requirements'
    (Invoke-WebRequest -Uri $URL).parsedhtml.title

    This hangs.

    $URL='http://windows.microsoft.com/en-US/windows-8/system-requirements'
    (Invoke-WebRequest -Uri $URL -UseBasicParsing).parsedhtml.title

    doesn't, but no output is produced, so this is not an acceptable workaround.

    Problem Description:
    $URL='http://windows.microsoft.com/en-US/windows-8/system-requirements'
    (Invoke-WebRequest -Uri $URL).parsedhtml.title

    hangs.

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

    Repro Steps:
    Run:

    $URL='http://windows.microsoft.com/en-US/windows-8/system-requirements'
    (Invoke-WebRequest -Uri $URL).parsedhtml.title

    This hangs.

    $URL='http://windows.microsoft.com/en-US/windows-8/system-requirements'
    (Invoke-WebRequest -Uri $URL -UseBasicParsing).parsedhtml.title

    doesn't, but no…

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

    We’ll send you updates on this idea

    6 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  7. PowerShell 5 - bug in GetType() for COM objects IADSUser

    Votes from Connect: 9

    Original Date Submitted: 6/16/2015 3:12:31 AM

    Description:
    Contact Information
    Handle: Ondrej Sevecek
    Site Name: PowerShell
    Feedback ID: 1437366


    Frequency: PowerShell
    Regression: run the mentioned script on Windows 10.0.10074 in its built-in PowerShell 5.

    Problem Description:
    When I run the following on Windows 10.0.10074 in PowerShell 5, it does not work for user members of the local group:

    $admins = [ADSI] 'WinNT://./Administrators,group'

    foreach ($oneMember in $admins.Members()) {

    $oneMemberName = $oneMember.GetType().InvokeMember('Name', 'GetProperty', $null, $oneMember, $null)
    Write-Host $oneMemberName

    }

    The error is: Error while invoking GetType. Could not find member.

    While the code works fine on any other OS…

    16 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. UTF-8 without BOM [Missing Encoding Option]

    Votes from Connect: 4

    Original Date Submitted: 10/6/2014 10:15:42 AM

    Description:
    Contact Information
    Handle: DScripter
    Site Name: PowerShell
    Feedback ID: 993163


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

    Problem Description:
    I had an issue recently with generating JSON files that needed to be encoded in 'UTF-8 without BOM.' Cmdlets with the -Encoding parameter do not have this format as a possible encoding option.

    It looks like the Unicode standard recommends not using the BOM, either, as mentioned in this conversation:
    http://stackoverflow.com/questions/2223882/whats-different-between-utf-8-and-utf-8-without-bom

    Here is the Standard documentation:
    http://www.unicode.org/versions/Unicode5.0.0/ch02.pdf
    Quote given from Page 30:
    "... Use of a…

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

    We’ll send you updates on this idea

    1 comment  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  9. ConvertFrom-JSON doesn't allow you to modify the maxJSONLength value

    Votes from Connect: 26

    Original Date Submitted: 9/18/2013 10:01:50 PM

    Description:
    Contact Information
    Handle: Mark E. Schill
    Site Name: PowerShell
    Feedback ID: 801353


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

    Problem Description:
    ConvertFrom-JSON doesn't allow you to modify the maxJSONLength value. By default it is set to 2MB so if you have a JSON string that is longer it will error out trying to convert to a PowerShell object.

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

    Repro Steps:
    Use ConvertFrom-JSON on any string over…

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

    We’ll send you updates on this idea

    0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  10. Send-MailMessage should support ReplyTo

    Votes from Connect: 34

    Original Date Submitted: 8/23/2012 10:09:13 PM

    Description:
    Contact Information
    Handle: RyanM_NU
    Site Name: PowerShell
    Feedback ID: 759227


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

    Problem Description:
    The .NET Mail.MailMessage Class has a ReplyToList property (as well as an obsolete ReplyTo property):

    http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.replytolist.aspx

    "Use the ReplyToList property to indicate the list of addresses other than the From address to use to reply to this message.
    The ReplyToList property replaces the ReplyTo property that only allows a single address to reply to."

    The Send-MailMessge cmdlet should also support ReplyTo functionality.

    Product Studio item created…

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

    We’ll send you updates on this idea

    0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  11. test-connection throws quota exception when passed large list of computernames

    Votes from Connect: 13

    Original Date Submitted: 1/21/2011 3:36:17 AM

    Description:
    Contact Information
    Handle: jim christopher
    Site Name: PowerShell
    Feedback ID: 637184


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

    Problem Description:
    When passing large (e.g., >650) host names to the test-connection cmdlet, the cmdlet raises a WMI quota violation exception.

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

    Repro Steps:
    $ra = @(0..1000) | %{ $env:computername };
    test-connection $ra;

    Expected Results:
    I expect test-connection to manage the WMI underpinnings so I don't receive the quota violation.

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

    We’ll send you updates on this idea

    0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  12. Import-json

    json is becoming the new standard (if not already)
    It would be nice to have an import-json and a export-json as we have in xml/csv instead of the two steps process with get-content and convertfrom-json and convertto-json.

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

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  13. Merge "Windows PowerShell" and "PowerShell Core", make result default on Windows

    When sending code to someone, I don't want to have to qualify the post with "if it doesn't work, try the other PowerShell...". I know there will be OS-specific modules/commands, but there should not be two code bases for the shell itself, or two product names.

    15 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. Out-Gridview should provide a count of the number of objects displayed

    It would be very useful if Out-Gridview provided a build in display of the number of objects in the grid. This could be in a status bar at the bottom or at the top along with the Add Criteria button.

    This would update as the filters are applied. It would also be nice if the selected items had a count as well.

    It would be especially useful with -passthru as you could have an estimate on the number of objects being passed to the next cmdlet in the pipeline.

    You can come up with the count by using measure-object, but…

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

    We’ll send you updates on this idea

    4 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →

    It would certainly be cool, but we’re not really investing in Out-GridView at this point in time. I’ll leave this open as a Survey to see if the demand surpasses our bar (though I’d caveat that demand would have to be fairly high).

    Thanks,
    Joey

  15. Tab completion should complete Verb then Noun

    With hundreds of CmdLets, tab-completion becomes arduous. This could have a new mode that's two step, so I type:

    Reg [tab]

    Which completes "Register-" and waits for more input.

    Then I type:

    ps [tab]

    Which completes the rest to make "Register-PSRepository".

    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  ·  ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
  16. DSC Pullserver database and High availability

    As a suggestion – would it be possible to let us configure the on-prem Pullserver to use a separate database rather than the ESENT one located on the Pullserver. This would solve the issues around high availability and those databases.

    I’m thinking it would be great to configure multiple Pullservers to use a backend database as we would do for any other web application. Then we could separate the load balancing of the Pullserver from the Database availability.

    Thanks for considering!!

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

    We’ll send you updates on this idea

    1 comment  ·  Desired State Configuration (DSC)  ·  Flag idea as inappropriate…  ·  Admin →
  17. Splatting for class method input parameters

    Votes from Connect: 23

    Original Date Submitted: 5/28/2015 11:09:44 PM

    Description:
    Contact Information
    Handle: Trevor Sullivan [MVP]
    Site Name: PowerShell
    Feedback ID: 1376904


    Problem Description:
    In the spirit of splatting, a cool feature to have for PowerShell v5 or vNext, would be to be ale to splat method parameters on PowerShell classes.

    Right now, an error message appears: "The splatting operator '@' cannot be used to reference variables in an expression. '@NewPerson' can be used only as an argument to a command. To reference variables in an expression use '$NewPerson'."

    class Person {

    [string] $FirstName;
    
    [string] $LastName;

    Person ([string] $First,…

    15 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 →
  18. ParameterSet names should not be case sensitive

    Votes from Connect: 130

    Original Date Submitted: 7/24/2014 11:42:29 PM

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


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

    Problem Description:
    Powershell is not a case sensitive language, and yet, ParameterSet names are case sensitive, and mixing up the case of a name can results in multiple sets. This should not be so.

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

    Repro Steps:
    function test-case {
    param(

      [Parameter(ParameterSetName="Test",Mandatory=$true)][Switch]$TitleCase,
    
    [Parameter(ParameterSetName="test",Mandatory=$true)][Switch]$LowerCase,
    [Parameter(ParameterSetName="TEST",Mandatory=$true)][Switch]$UpperCase

    )
    $PSCmdlet.ParameterSetName
    }

    Both of these

    15 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. ConfigurationAST should include resource modules being imported

    The ConfigurationAST added in v4 for PowerShell DSC does a good job at providing resource configuration details. However, to determine what modules are being imported, we should still use the keyword AST to find the resource module names from the Import-DSCResource command. While this is a workaround, it will be easier if ConfigurationAST can provide this information for simplicity.

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

    We’ll send you updates on this idea

    survey  ·  0 comments  ·  Desired State Configuration (DSC)  ·  Flag idea as inappropriate…  ·  Admin →
  20. 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

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

Feedback and Knowledge Base