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. SendMail needs ReplyTo parameter

    This is a standard SMTP option and glaring oversite in PowerShell.

    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 →
  2. Include function to show bytes human readable like linux.

    In Linux in many commands like "ls", "df", and other have an option to show bytes sizes in human readable formats (bytes, KB, MB, GB, TB, etc).
    In powershell is necessary to create a function to do this.
    Would be interesting create some function to powershell convert the bytes value in the human readable value.

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  3. Get-Credential does not support Smart Card user name hints

    If you utilize Smart Cards with certificates that are not directly linked to users (no suitable user DN in Subject and no UPNs in SANs), you are able to link a single certificate to multiple accounts dynamically with the caveat that users need to provide explicit user name hints during logon in order to log on.

    User name hints need to be enabled via GPO or registry settings ("X509HintsNeeded"), after which all standard credential dialogs in Windows support them, except PowerShell's Get-Credential. This effectively prevents using PowerShell remoting with such Smart Cards / certificates if different credentials are required.

    In…

    10 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 →
  4. PowerShell Classes should allow properties with get and set

    PowerShell classes should more closely mirror the abilities of a C# class imported and allow full differentiation between fields and properties. Properties should allow getter and setter code blocks

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  5. [Bug] Windows Management Framework 5.1, ExecutionPolicy set via "User Configuration" (Group Policy) does NOT apply to the "UserPolicy" scope

    [Bug] On Windows Management Framework 5.1, ExecutionPolicy set via "User Configuration" (Group Policy) does NOT apply to the "UserPolicy" scope (defaults to "Undefined") on OSs other than Windows 10 and Windows Server 2016

    Affected operating systems:
    Windows Server 2012 (confirmed)
    Windows Server 2008 R2 (confirmed)
    Windows 8.1 (unconfirmed)
    Windows 8 (unconfirmed)
    Windows 7 SP1 (confirmed)

    Explanation:
    I want to set ONLY the UserPolicy ExecutionPolicy scope to be "Restricted" and leave the MachinePolicy ExecutionPolicy scope as "Undefined" so that it isn't overriding the UserPolicy scope. This will allow the "Builtin\System" \ "NT Authority\System" \ "%ComputerName%$" account to run scripts but NOT…

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  6. Need a PowerShell version of tpmvscmgr.exe to manage TPM smart cards

    We need a PowerShell version of tpmvscmgr.exe to manage TPM virtual smart cards.

    The tpmvscmgr.exe tool 1) does not accept PIN, PUK and AdminKey numbers as arguments, these must be entered interactively in powershell.exe only, not ISE or with a pop-up, 2) cannot list currently existing virtual smart card ID strings, and 3) is somewhat crude in how it manages card lockout policies and unlocks.

    This is needed not just for Windows clients, but also because Server 2016 Hyper-V supports virtual smart cards for guest VMs, such as for VDI scenarios.

    We need to be able to pass in PIN,…

    10 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 →
  7. Bug: Get-Date handles slashes wrong

    If I use the -format parameter with Get-Date, and provide slashes in the format string, the slashes are treated as hyphens in the output.

    Get-Date -Format 'yyyy/MM/dd'
    2017-11-08

    I'm running on a US English WIndows 10 with Regional Settings set to Danish.

    PS C:> gcim win32_operatingsystem | % caption
    Microsoft Windows 10 Pro
    PS C:> $PSVersionTable.PSVersion

    Major Minor Build Revision


    5 1 16299 19

    Also, I've reproduced this on a Windows server 2012R2 machine:

    PS C:\scripts> Get-Date -Format 'yyyy/MM/dd'
    2017-11-08
    PS C:\scripts> gcim win32_operatingsystem | % caption
    Microsoft Windows Server 2012 R2 Standard
    PS C:\scripts> $PSVersionTable.PSVersion

    Major Minor Build Revision

    1 vote
    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 →
  8. Package PowerShell Classes in a Module

    Object Oriented Programming seems to be supported now in PowerShell, but custom classes defined in modules don't seem to behave the way they should.

    There only seem to be two consistent ways to make these work when importing a module that has classes defined:
    1. Import the module, then run "using module ..." to make the classes available in the session. Alternatively, you can import the module with the using statement, but this isn't ideal (no versioning).
    2. Add the class definition file(s) to the ScriptsToProcess attribute of the module. This isn't ideal either as it runs the scripts in…

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

    We’ll send you updates on this idea

    3 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  9. Copy headers when copying from Out-GridView

    It would be great to copy headers for all the columns when copying data from the Out-GridView table lists.

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

    We’ll send you updates on this idea

    survey  ·  2 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  10. Test-Connection timetolive parameter should be renamed to HopLimit

    TimeToLive is a misnover for HopLimit. Though this has been corrected in the IPv6 rfc, Test-Connection still references this parameter as TimeToLive, which leads to confuse it with a timeout.

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

    We’ll send you updates on this idea

    2 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  11. 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…

    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  ·  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

  12. Get-Certificate is misleading

    This cmdlet, rather than listing all certificates on the machine, which is how a Get-Cmdlet tents to work, instead Requests a new certificate from a Certificate Authority.

    This is NOT the way that Get- cmdlets are supposed to work. And we already have a perfectly good Request- verb sitting out there, which would be the right verb for this cmdlet.

    This would consitute a breaking change, but I think it's frankly broken today, so I'd call it a 'restorative change' instead.

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

    We’ll send you updates on this idea

    5 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  13. Powershell and collections (in particular, collection of preference variables)

    I've been struggling with exporting and importing preference variables from local to remote sessions. One idea that came to me was the idea of a collection of preference variables. According to a fellow at StackOverflow, Powershell doesn't institute these kinds of collections. If this is true, I would kindly request them to be implemented.

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →

    What are the environment variables you are interested in exporting? If it’s possible to enumerate them, then you can set them up in multiple locations.
    Take a look at the New-PSSessionConfigurationFile cmd (start with the help for it). It’s designed to enable part of the scenario you are interested in, but not sure if that is enough of what you are asking for.

  14. Add -HumanReadable parameter to Get-ChildItem

    When I use Get-ChildItem it'd be really great if I didn't have to stare at the Length property (by the way, "Length"? Windows already calls this "Size" so just stick to conventions, will'ya?) to understand the size.

    This parameter would accept the following values: Auto, KB, MB, GB, TB, PB.

    On a multi-GB file we get output like the following for Length: 78697816273. That's HARD to read.

    "Auto" would display the current item in the largest measure. Using the previous example, we'd get: 73.29 GB. If I used "KB" we'd get: 76853336.20 KB.

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  15. Create a SendTo-SysLog cmdlet and include it by default

    Please include by default a SendTo-Syslog cmdlet to send log messages to UNIX, Linux and SIEMs.

    If you were to add a syslog service role to send or accept syslog messages in a scalable way which integrated with the Windows event logs, that would be great too, but a cmdlet to just send UDP packets is easy enough to include in PoSh 5.1 right now.

    Thanks!

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

    We’ll send you updates on this idea

    6 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  16. Start-PcsvDevice is not up to current spec

    PROBLEM:
    I have been using the PcsvDevice commands to use IPMI out-of-band management to my servers. It works great for systems that are configured for legacy boot. But, the reboot does not work properly for systems that are requesting UEFI reboot. Here are the commands that work correctly for legacy booting:

    Set-PcsvDeviceBootConfiguration -TargetAddress $ipAddr -Credential $creds -ManagementProtocol IPMI -OneTimeBootSource $device.StructuredBootString[0]
    Start-PcsvDevice -TargetAddress $ipAddr -Credential $creds -ManagementProtocol IPMI

    The purpose of the above commands is to force a LAN boot no matter what is configured as the first boot device on the targeted server. This is handy if I want to…

    2 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 →
  17. Implement the && and || operators that bash has

    Votes from Connect: 22

    Original Date Submitted: 2/8/2013 8:32:38 AM

    Description:
    Contact Information
    Handle: antize
    Site Name: PowerShell
    Feedback ID: 778798


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

    Problem Description:
    Discussion about this at stackoverflow - http://stackoverflow.com/questions/563600/can-i-get-to-work-in-powershell

    Jeffery Snover said to request it here so here I am :D

    Here is a description of what they do -- http://www.gnu.org/software/bash/manual/bashref.html#Lists

    An AND list has the form

          command1 && command2
    

    command2 is executed if, and only if, command1 returns an exit status of zero.

    An OR list has the form

          command1 || command2
    

    command2 is executed if, and…

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

    We’ll send you updates on this idea

    2 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  18. 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…

    15 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 →
  19. Create symbolic link to a shadow copy using New-Item

    I'm able to make a symbolic link to a shadow copy using CMD mklink and kernel32.dll.CreateSymbolicLink
    But I'm not able to do this using PS>New-Item
    E.g.:
    New-Item -Path c:\temp\SL1 -ItemType SymbolicLink -Value \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy7\

    I get an error saying the path doesn't exist (that is the VSS path)

    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. Get-TLSCipherSuite does not output well-behaved objects (Get-TlsEccCurve too)

    Get-TLSCipherSuite does not output well-behaved objects.

    Test machine has PSVersion 5.1.14393.0 on the RTM eval version of Server 2016 Datacenter with the GUI desktop. Similar output with 5.1.14393.206 on Windows 10 Pro fully patched.

    The following command works as expected:

     Get-TlsCipherSuite | Format-Table Name
    

    But the following commands either output nothing or the wrong objects:

     Get-TlsCipherSuite | Select-Object Name
    
    

    Get-TlsCipherSuite | Where { $_.Hash -eq 'MD5' }

    Sometimes, just running Get-TlsCipherSuite will output objects that have blank properties that should not be blank, such as with the following:

     Get-TlsCipherSuite | Format-Table Cipher,Hash,Exchange
    
    

    [Microsoft.WindowsAuthenticationProtocols.Commands.TlsCipherSuite]::new('TLS_PSK_WITH_AES_256_GCM_SHA384')

    When piping into Get-Member, we get the…

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

Feedback and Knowledge Base