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. Invoke-RestMethod ignores ErrorAction parameter

    If a request made using Invoke-RestMethod receives a 400 or 500 error, it just calls Write-Error and always fails irrespective of the value of the ErrorAction parameter.

    4 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 →
  2. Get-Service Name parameter allows Null value

    Get-Service -Name $Null returns all services. Expected behavior would be for Name to have ValidateNotNullOrEmpty attribute assigned.

    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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  3. Format-Wide : Allow -AutoSize (or a -Compact) parameter to shrink spacing between columns

    Format-Wide doesn't allow AutoSize and Column in the same command because AutoSize is used to determine number of columns by itself. Column alone used the console width and you get alot of spacing.

    It would be really useful to be able to run Format-Wide -Column 5 -AutoSize to let it shrink the spacing between the columns just like -AutoSize does in Format-Table. Or add a new -Compact-switch.

    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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  4. Invoke-RestMethod returns an unrolled array

    The following command at the moment of writing is supposed to return 8 objects
    describing GitHub repositories

    Invoke-RestMethod <a rel="nofollow noreferrer" href="https://api.github.com/users/nightroman/repos">https://api.github.com/users/nightroman/repos</a>
    

    There is an issue though. It looks like it gets objects as an unrolled array.
    This is not a problem if the result is cached in a local variable. But it may
    be a problem if Invoke-RestMethod is used directly in a foreach loop. The
    loop always performs a single iteration and the single item is the whole array
    of objects. In contrast, if the cached result variable is used in foreach
    then all items are processed one…

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

    We’ll send you updates on this idea

    8 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  5. Add Reverse-String cmdlet

    Votes from Connect: 9

    Original Date Submitted: 7/16/2015 4:32:00 PM

    Description:
    Contact Information
    Handle: happysysadm
    Site Name: PowerShell
    Feedback ID: 1551725


    Problem Description:
    Hi,

    it would be nice to have a Reverse-String cmdlet. One that takes a string and reverse it. For example, "asdf" becomes "fdsa".

    It could be aliased to rs (for reverse-string).

    The reverse method for [array] is ok, but having a cmdlet and/or a [string] method. would be better.

    Other well-known languages have routines for this:

    For instance in Perl 6 you have the flip routine, which returns the string reversed character by character.
    "Perl".flip; # lreP …

    4 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 →
  6. Stop-Transcript should return a file path (System.Io.FileInfo), not a string

    Votes from Connect: 6

    Original Date Submitted: 3/4/2015 12:59:24 AM

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


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

    Problem Description:
    Stop-Transcript returns a string that contains the path to the transcript file. (The string has grammatical errors, too.)

    e.g. Transcript stopped, output file is C:\Users\JuneBlender\Documents\PowerShell_transcript.JUNEB-SRV01.yk0IWlkr.2015030311
    4238.txt

    To use the file in a subsequent command, you have to parse it cmd.exe-style. PowerShell can do better. Returning a file path would allow you to pipe the output to further commands.

    e.g.
    PC C:&gt; Stop-Transcript
    C:\Users\JuneBlender\Documents\PowerShell_transcript.JUNEB-Server01.yk0IWlkr.20150303114238.txt

    Product Studio…

    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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  7. Enable-PSRemoting support for ComputerName parameter

    Votes from Connect: 17

    Original Date Submitted: 11/23/2010 4:09:27 PM

    Description:
    Contact Information
    Handle: Aleksandar Nikolic
    Site Name: PowerShell
    Feedback ID: 623892


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

    Problem Description:
    I would like to see Enable-PSRemoting support for ComputerName parameter to enable remoting on a remote machine.

    If you are in a domain environment then the ComputerName parameter would not mean much because you could use GPO to enable PowerShell remoting wherever you like. However, in a workgroup environment it could be quite useful.

    Product Studio item created by Connect Synchronizer due to…

    4 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 →
  8. New-ScheduledTaskTrigger missing option to NOT 'Synchronize across time zones'

    New-ScheduledTaskTrigger missing option to NOT 'Synchronize across time zones'

    The default is to always set it. This should not be an implied default as it creates problem with Daylight Saving etc.

    To remove must do as follows which should not be needed:

    $str = Get-ScheduledTask -TaskName TESTTASK

    $NewTriggers = @()
    foreach($trigger in $str.Triggers)
    {

    if($trigger.StartBoundary -match &#39;\+01:00$&#39;)
    
    {
    $Trigger.StartBoundary = $Trigger.StartBoundary.Substring(0,$Trigger.StartBoundary.Length-6)
    }
    $NewTriggers += $trigger

    }

    $str.Triggers = $NewTriggers
    Set-ScheduledTask -InputObject $str

    Please add switch to disable either through New-ScheduledTaskTrigger or via Set-ScheduledTask

    3 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 →
  9. New-SMBShare -Temporary seems to do nothing

    New-SMBShare -Temporary should remove the share after a reboot but that's nothing happening

    3 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 →
  10. get-localgroup does not have SID parameter

    Get-Localgroup does not have SID parameter when running x86 version.

    Version: 5.1.17763.771 (x86)
    Running "(Get-LocalGroup -SID 'S-1-5-32-544').Name" will return error about non matched param.

    3 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 →
  11. Bug - Get-WsusComputer Cmdlet

    The optional parameter "-ComputerUpdateStatus" does not filter at all and instead returns all computers.

    3 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 →
  12. New-SmbShare -Whatif not working

    New-SmbShare with -Whatif switch NOT working, it runs the command instead of showing the whatif massage

    Test with vscode insider

    Name Value


    PSVersion 5.1.17134.228
    PSEdition Desktop
    PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
    BuildVersion 10.0.17134.228
    CLRVersion 4.0.30319.42000
    WSManStackVersion 3.0
    PSRemotingProtocolVersion 2.3
    SerializationVersion 1.1.0.1

    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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  13. Which server member in a cluster holds the quorum disk (Active/Passive)

    Every month we have to go thru a list of servers sometimes as many as 800 plus servers and determine which of the 2 member servers of a cluster holds the quorum disk. Could be 2 or 4 nodes in the cluster. Helps when running our patching process and how we schedule our patching process. TIA - Bob

    3 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 →
  14. Set-Location/Push-Location should update process' current directory

    The Set-Location/Push-Location cmdlets do not update the calling process' current directory. This leads to surprising behavior when working with non-PowerShell APIs. Simple example below.

    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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  15. get-command -module only shows aliases with verb-noun naming

    If a module exports aliases which don't follow the verb-noun convention (which most don't), they aren't shown with get-command -module <modulename>.

    Get-command -module <modulename> -commandType Alias does show them,
    as does
    Get-command -module <modulename> -all
    This is counter-intuitive, because -commandtype should narrow the results, and the description of the -all switch says it's for "revealing" commands hidden by naming collisions.

    3 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 →
  16. Allow using Select, Sort, Group, and Measure without a pipeple

    It should be possible to use Select-Object, Sort-Object, Group-Object, and Measure-Object without a pipeline.

    In those circumstances where a script needs to be optimized for speed, one of the first things to do is to eliminate pipelines because of the huge overhead they incur. Because of these four commands, eliminating all pipelines is sometimes impossible or requires coming up with complex alternatives to them.

    I would expect these two commands (or some variation of the second one) to produce the same result:

    2, 1, 3 | Sort-Object
    Sort-Object -InputObject 2, 1, 3

    Currently, the second line treats the array in…

    3 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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  17. ConvertFrom-Csv has undocumented partial comment support

    When multiple strings are fed into ConvertFrom-Csv, it will ignore lines prefixed with a '#' character. When fed a single string, it retains those lines. Unless it is the first line, in which case it is ignored either way. This behavior happens whether sent through the pipeline or provided to the -InputObject parameter.

    The workaround is to use double quotes around the item with the leading '#'.

    I guess this comes from handling the optional type information. The check for the "#TYPE" seems to happen only once with the single string, and every time when given multiple strings.

    Choose either…

    3 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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  18. Get-Winevent - Execution with only -MaxEvents parameters specified

    When executing the Get-Winevent cmdlet with only the -MaxEvents parameter specified the cmdlet ends up in an infinite loop spewing errors:

    Get-WinEvent -MaxEvents 1

    Get-WinEvent : The data is invalid
    At line:1 char:9
    + $null = Get-WinEvent -MaxEvents 1
    + ~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [Get-WinEvent], EventLogInvalidDataException
    
    + FullyQualifiedErrorId : The data is invalid,Microsoft.PowerShell.Commands.GetWinEventCommand

    I reproduced this error on PowerShell 5.1 and 4.0 on multiple systems. The behavior I expected was to receive the most recent event from any of the event logs. I feel this error could be prevented by using proper parameter validation.

    3 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 →
  19. Get-Credential Smart Card Across Domains

    When using New-PSSession -ComputerName -Credential (Get-Credential) and specifying a smart card certificate, authentication fails.

    The smart card option seems to pull my credentials from the domain my workstation is on (Alpha\Username) instead of passing the smart card certificate forward to be authenticated as (Bravo\Username).

    Is there a way to change or prevent this?

    Scenario:
    Username = "User"
    Workstation Domain = "Alpha"
    Server Domain = "Bravo"
    User is logged into his workstation and attempts to authenticate to his server in Bravo using his smart card. User's authentication is denied. The logs on the Server indicate that "Alpha\User" was denied access.

    This…

    3 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 →
  20. [System.ServiceProcess.ServiceController] should add StartType to its formatting

    Get-Service | Format-List
    Get-Service | Format-Table

    should display the "StartType" column, i.e. "StartType" should appear in "System.ServiceProcess.ServiceController" <TableControl> and <ListControl> in DotNetTypes.format.ps1xml.

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

Feedback and Knowledge Base