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 WMF 5 classes lacking

    Votes from Connect: 3

    Original Date Submitted: 5/6/2015 6:00:56 PM

    Description:
    ********Contact Information********
    Handle: FaustoNascimento
    Site Name: PowerShell
    Feedback ID: 1307824
    ***************************************

    Problem Description:
    PowerShell are a great introduction to PowerShell, but I feel that they are lacking in a few areas currently:

    - No $PSBoundParameters. With the inability to have fields (rather than properties) in PowerShell classes, and the fact that properties are always public (even with the keyword 'hidden' they can still be accessed externally to the class), it becomes impossible to determine whether a property has a value that is default because of PowerShell's coercion, or if…

    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 →
  2. Option to output a pipeline terminating error via a Write-Error switch parameter

    Votes from Connect: 3

    Original Date Submitted: 4/14/2015 6:32:46 PM

    Description:
    ********Contact Information********
    Handle: Carl Sörqvist
    Site Name: PowerShell
    Feedback ID: 1247244
    ***************************************

    Problem Description:
    There are three types of errors in Powershell:

    Non-terminating errors are generated by the Cmdlet.WriteError method in .NET (https://msdn.microsoft.com/en-us/library/system.management.automation.cmdlet.writeerror(v=vs.85).aspx) or by Write-Error/$PSCmdlet.WriteError() in Powershell, and lets both cmdlet/advanced function and script execution continue, unless $ErrorActionPreference is set to "Stop".

    Pipeline terminating errors are generated by the Cmdet.ThrowTerminatingError method in .NET (https://msdn.microsoft.com/en-us/library/system.management.automation.cmdlet.throwterminatingerror(v=vs.85).aspx) or by $PSCmdlet.ThrowTerminatingError() in Powershell, and stops the current pipeline from executing any further, but does *not* stop script execution…

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  3. $PSDefaultParameterValues should be automatically cleared in module scope (for all module types: script, manifest, and binary)

    Votes from Connect: 4

    Original Date Submitted: 4/6/2015 10:06:18 AM

    Description:
    ********Contact Information********
    Handle: Kirk Munro
    Site Name: PowerShell
    Feedback ID: 1228413
    ***************************************

    Problem Description:
    While the $PSDefaultParameterValues variable offers many convenient use cases to control how individual or groups of commands behave, it should be automatically cleared in a module scope. Otherwise state configuration that a user sets up in the current runspace may break functionality in modules that are used in that runspace.

    For example, June sent out a tweet suggesting you should consider forcing Get-Help to always show help in a window, like this:
    $PSDefaultParameterValues['Get-Help:ShowWindow'] = $true

    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 →
  4. Powershell ISE improvement

    Votes from Connect: 5

    Original Date Submitted: 3/21/2015 7:01:42 PM

    Description:
    ********Contact Information********
    Handle: Adz
    Site Name: PowerShell
    Feedback ID: 1194216
    ***************************************

    Problem Description:
    Hi,

    Is it possible to introduce indentation by default and automatic closing braces when opening?

    I think these are easy features to add and since ISE is built for scripting it should be treated better.

    I think that will make troubleshooting easier also for beginner scripters who forget to close braces

    Thanks

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

    Repro Steps:

    Internal BugId: 14330

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  5. -Hostname parameter for invoke-sqlcmd sets the Application Name not the Host Name.

    Votes from Connect: 8

    Original Date Submitted: 3/19/2015 7:13:55 PM

    Description:
    ********Contact Information********
    Handle: Greg Low - Australia
    Site Name: PowerShell
    Feedback ID: 1190033
    ***************************************

    Frequency: PowerShell
    Regression: Execute a command such as:

    invoke-sqlcmd -ServerInstance "." -Query "SELECT HOST_NAME() AS HostName, APP_NAME() AS ApplicationName;"

    Note the returned value from the HostName and the ApplicationName. Now execute the following command:

    invoke-sqlcmd -ServerInstance "." -Query "SELECT HOST_NAME() AS HostName, APP_NAME() AS ApplicationName;" -Hostname "My Application"

    Note that the host name changes, not the application name.

    Problem Description:
    Two of the parameters in SQL Server connections are the Application Name and the Host…

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  6. Invoke-DscResource - Should always be able to be run, no matter what RefreshMode is set to

    Votes from Connect: 3

    Original Date Submitted: 3/3/2015 7:34:33 AM

    Description:
    ********Contact Information********
    Handle: Rob Reynolds (FerventCoder)
    Site Name: PowerShell
    Feedback ID: 1157802
    ***************************************

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

    Problem Description:
    Why can Invoke-DscResource only be run when LCM.RefreshMode = 'Disabled'?

    Disabled is not the default. This means I need to make system level changes just so I can run commands with this method. This severely limits the usefulness of the command.

    I understand that you don't want competing resources, but that power should be handed over to the user to work…

    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  ·  Desired State Configuration (DSC)  ·  Flag idea as inappropriate…  ·  Admin →
  7. Receive-Job Example 4 is wrong

    Votes from Connect: 3

    Original Date Submitted: 2/10/2015 9:29:49 AM

    Description:
    ********Contact Information********
    Handle: June Blender
    Site Name: PowerShell
    Feedback ID: 1122497
    ***************************************

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

    Problem Description:
    Example 4 of Receive-Job (the one with the $Using scope modifier) fails because the local variable ($j) holds a deserialized job object that Receive-Job can't convert.

    Please change the example to:

    $s = New-PSSession -ComputerName 'MyRemoteServer'
    $j = Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {Get-Eventlog -LogName System}}
    $iid = $j.InstanceID
    $results = Invoke-Command -Session $s -ScriptBlock {Receive-Job -InstanceID $Using:iid}

    Thanks (and sorry about the…

    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 →
  8. -match, -notmatch, -replace, and -split operators have inconsistent case-sensitivity behavior

    Votes from Connect: 5

    Original Date Submitted: 2/4/2015 1:35:58 PM

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

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

    Problem Description:
    One would expect -imatch to always be case-insensitive, and -cmatch to always be case sensitive. However, this is only true if you pass something other than a [regex] object on the right of the operator. Under those conditions, PowerShell builds a new regex object with the proper case sensitive setting. If you pass in a [regex] object, it just uses that object…

    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 →
  9. Add ForEach-Object and Where-Object to the built-in ISE snippets

    Votes from Connect: 3

    Original Date Submitted: 11/23/2014 8:12:21 PM

    Description:
    ********Contact Information********
    Handle: Martin Schvartzman
    Site Name: PowerShell
    Feedback ID: 1037606
    ***************************************

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

    Problem Description:
    The snippets (CTRL+J) are very helpful for beginners, but the basic ForEach-Object and Where-Object snippets are missing.
    It would be great to have these added to the built-in snippets.

    As a workaround, they can be created using the New-IseSnippet cmdlet:
    New-IseSnippet -Title ForEach-Object -Description 'This snippet inserts the ForEach-Object syntax' -Text 'ForEach-Object { $_ }' -CaretOffset 19 -Force
    New-IseSnippet -Title Where-Object -Description 'This snippet…

    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  ·  ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
  10. Add support for calculated properties to Measure-Object

    Votes from Connect: 4

    Original Date Submitted: 11/20/2014 5:43:42 AM

    Description:
    ********Contact Information********
    Handle: Tom Nolan [MSFT]
    Site Name: PowerShell
    Feedback ID: 1033948
    ***************************************

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

    Problem Description:
    Most of the *-Object commands support the use of calculated properties, but Measure-Object doesn't. This would be a useful piece of functionality and would also put it in line with the other cmdlets.

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

    Repro Steps:
    # The following code is a simple example showing the various…

    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 →
  11. Add bandwidth switch to invoke-webrequest

    Votes from Connect: 3

    Original Date Submitted: 11/15/2014 1:29:53 AM

    Description:
    ********Contact Information********
    Handle: Gantcho Radoslavov
    Site Name: PowerShell
    Feedback ID: 1029839
    ***************************************

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

    Problem Description:
    Invoke-webrequest is proving quite helpful. It would be nice however to be able to control the bandwidth used by the cmdlet. Is it possible to add the feature to throttle the bandwidth used by the command?

    Thank you

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

    Repro Steps:
    using invoke-webrequest to fetch files…

    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 →
  12. Need cmdlets to configure user rights and privileges

    Votes from Connect: 5

    Original Date Submitted: 10/29/2014 8:02:24 PM

    Description:
    ********Contact Information********
    Handle: BigBadJogr
    Site Name: PowerShell
    Feedback ID: 1014489
    ***************************************

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

    Problem Description:
    Configuring user/group rights and privileges from PowerShell is too complex.
    There are a number of solutions that imply using 3rd party dlls, C#, ntrights.exe or secedit.exe, but I think this is a scenario that should be supported natively by PowerShell.
    e.g.
    Set-UserRight -userName localhost\MyUser -Right SeInteractiveLogonRight -Allow

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

    Repro…

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  13. Pressing Tab ought to complete keywords like "return"

    Votes from Connect: 3

    Original Date Submitted: 10/28/2014 3:33:07 AM

    Description:
    ********Contact Information********
    Handle: Doug Finke
    Site Name: PowerShell
    Feedback ID: 1012967
    ***************************************

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

    Problem Description:
    Type re<TAB>does not complete to the keyword return

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

    Repro Steps:
    Type re<TAB>does not complete to the keyword return

    Expected Results:
    Typing re<TAB>should expand to the keyword return

    Internal BugId: 13070

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  14. DSC configuration fails if WinRM service restarts while the enact is in process

    Votes from Connect: 7

    Original Date Submitted: 10/20/2014 11:07:16 PM

    Description:
    ********Contact Information********
    Handle: Ravikanth.Chaganti
    Site Name: PowerShell
    Feedback ID: 1006559
    ***************************************

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

    Problem Description:
    When DSC configuration enact process is in progress (either push or pull), any interruption in WinRM service disconnects the CIM session and leads to failure of configuration. The inability to recover from wsman disconnection is an issue within a data center. There are many reasons why such a disconnection may happen and this needs to be fixed.

    Product Studio item created by Connect Synchronizer due…

    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  ·  Desired State Configuration (DSC)  ·  Flag idea as inappropriate…  ·  Admin →
  15. Add -Splat common parameter

    Votes from Connect: 21

    Original Date Submitted: 9/26/2014 11:22:14 PM

    Description:
    ********Contact Information********
    Handle: Kirk Munro
    Site Name: PowerShell
    Feedback ID: 982475
    ***************************************

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

    Problem Description:
    Splatting is incredibly useful, but the syntax required does not support several use cases that should be supported, such as:
    1. Splatting a hashtable of parameter/value pairs that is not stored in a variable.
    2. Splatting a hashtable that is in a nested parameter.
    3. Splatting a hashtable that is returned from a method call.

    In all of these scenarios, you need to store…

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  16. Caught exceptions still appear in global $Error list

    Votes from Connect: 3

    Original Date Submitted: 9/16/2014 12:15:09 AM

    Description:
    ********Contact Information********
    Handle: Aaron Jensen
    Site Name: PowerShell
    Feedback ID: 972566
    ***************************************

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

    Problem Description:
    When you catch exceptions, those exception still appear in the global $Error list. I expect that caught exceptions shouldn't appear there because I'm catching and handling them. We have build pipelines that fail builds if there are any errors in the global $Error variable, and this causes false failures in situations where we are handling the exceptions.

    $Error.Clear()
    try
    {
    throw 'Blarg!'
    }
    catch …

    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 →
  17. Set-StrictMode -Version latest doesn't error in some contexts

    Votes from Connect: 3

    Original Date Submitted: 9/13/2014 5:51:52 AM

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

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

    Problem Description:
    Set-StrictMode -Version latest

    ${env:with-paths-that-dont-exist}
    ${function:with-paths-that-dont-exist}
    ${drives:with-paths-that-dont-exist}
    # I expect these to error but they don't

    "asdf" > $null
    $a = $null ; "asdf" > $a
    "asdf" > ''
    # I expect these to error but they don't
    (though honestly, > $var should be a syntax error, users should be required to use Out-File)

    Product Studio item created by Connect Synchronizer due to…

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  18. Dynamic switches before positional parameters may not work as expected

    Votes from Connect: 4

    Original Date Submitted: 8/31/2014 12:30:14 PM

    Description:
    ********Contact Information********
    Handle: Roman Kuzmin
    Site Name: PowerShell
    Feedback ID: 960194
    ***************************************

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

    Problem Description:
    StackOverflow question:
    http://stackoverflow.com/questions/25560038/dynamic-switches-before-positional-parameters-may-not-work-as-expected

    Here is the code that demonstrates the problem. The cmdlet Set-Location has the
    dynamic switch ReadOnly if the provider is FileSystem.

    ------8<--------

    # provider that does not have the dynamic ReadOnly
    Set-Location env:

    # case 1: works because we explicitly specify FileSystem
    Get-ChildItem C:\ -ReadOnly

    # case 2: fails even though we explicitly specify FileSystem
    Get-ChildItem -ReadOnly C:\

    ------8<--------

    Normally position…

    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 →
  19. Various parameter annoyances / inconsistencies with builtin cmdlets

    Votes from Connect: 4

    Original Date Submitted: 8/23/2014 7:08:24 AM

    Description:

    ********Contact Information********
    Handle: Derp McDerp
    Site Name: PowerShell
    Feedback ID: 953115
    ***************************************

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

    Problem Description:
    I wrote 2 functions (Find-ParamClash and Find-Param) to explore parameters in cmdlets (see the attatchments for source code). They found some problems/annoyances with the stock cmdlets in PowerShell v4:

    (Note: the lists below aren't comprehensive because Find-ParamClash and Find-Param uses the data returned by Get-Command. The fields needed are mostly empty because PowerShell lazy loads modules but gives you no way to see the…

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  20. Hashtables seem to use different comparers on setting a value and creating the hashtable

    Votes from Connect: 4

    Original Date Submitted: 8/18/2014 1:14:35 PM

    Description:
    ********Contact Information********
    Handle: Hypftier
    Site Name: PowerShell
    Feedback ID: 948988
    ***************************************

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

    Problem Description:
    Apparently all keys are coerced to strings, or at least treated the same:

    PS> $x = @{1 = 5; '1' = 7}
    At line:1 char:15
    + $x = @{1 = 5; '1' = 7}
    + ~~~
    Duplicate keys '1' are not allowed in hash literals.
    + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : DuplicateKeyInHashLiteral

    However, when retrieving or setting values this…

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Feedback and Knowledge Base