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.

Please feel free to provide feedback or file bugs here.

(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Out-DataTable

    Creates a DataTable based on an objects properties. Useful for converting any Powershell object into a DataTable which then can be bulk imported into a SQL Server table.

    .EXAMPLE
    $dt = Get-PSDrive | Out-DataTable
    This example creates a DataTable from the properties of Get-Alias and assigns output to $dt variable

    This idea comes from Chad Miller's Out-DataTable: https://gallery.technet.microsoft.com/scriptcenter/4208a159-a52e-4b99-83d4-8048468d29dd#content

    179 votes
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)

      We’ll send you updates on this idea

      19 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →

      After much discussion with Aaron Nelson and Chrissy LeMaire, and thanks to the enormous amount of support for this item, we’ve recognized that this is something we need to accomplish, one way or another.

      We don’t want to offer an ETA on this as the work is not well understood by our team yet, and no one currently has immediate bandwidth on starting that investigation. But I want to stress the fact that is an important ask that we’re taking seriously as a priority.

      In the meantime, it would be immensely useful if someone with expertise in the DataTable space could submit an RFC (basically a brief spec) to our PowerShell-RFC repository on GitHub. That way, we can have a discussion about what the design of a ConvertTo-DataTable cmdlet might look like before we dive in on an implementation. The process for doing so is located here: https://github.com/PowerShell/PowerShell-RFC/blob/master/RFC0000-RFC-Process.md#draft

      I…

    • Get-Service should return the user account the services are running under

      The Get-Service cmdlet should return the service account associated to each service.

      We can get this information easily from the Win32_Service WMI class, but to me, it should be returned by Get-Service.

      Checked with PS v5 without luck...

      Thanks!

      148 votes
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)

        We’ll send you updates on this idea

        7 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
      • Version Numbering for All Releases

        Please increment the version number for ALL releases, indicate which ones are supported in production, and provide a Get-PSVersionInfo cmdlet as described in http://powershell.org/wp/?p=33342.

        112 votes
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)

          We’ll send you updates on this idea

          10 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →

          Hi everyone,

          With PowerShell 6.0, we’ve already begun updating our versioning system to be more descriptive. Right now, PSVersion returns 6.0.0-alpha as a System.Management.Automation.SemanticVersion object (with Major, Minor, Patch, and Label properties), and we’ve also added a GitCommitId property to PSVersionTable that matches perfectly with tags on GitHub: https://github.com/powershell/powershell/tags

          Still, we can definitely continue to improve the semantic version implementation. You can track (and contribute to!) the discussion on these improvements here: https://github.com/PowerShell/PowerShell/issues/2354

          Thanks,
          Joey

        • Add a "Compile" verb

          PowerShell needs a Compile verb, especially in a world of DevOps. Looking at the approved verb list, there are mediocre subtitutes that could be used in its place (Start-Compilation, Invoke-Compile, etc.), but these all use an inappropriate verb with the a variant of the verb in the noun. When the verb is finding its way into the noun, it's time for a new verb. Please add Compile to the list of approved verbs in an upcoming release.

          52 votes
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)

            We’ll send you updates on this idea

            8 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
          • Allow splatting without an intermediate variable.

            instead of
            $splat = @{name = "value"}
            verb-noun @splat

            Allow verb-noun @{name = "value"}

            This would make for a much cleaner and more natural look to parameters. Letting them be in the usual place of after and below the function.

            There is a stackoverflow question relating to this, that should explain it more - http://stackoverflow.com/questions/35188172/why-do-i-need-to-splat-to-a-variable-first

            46 votes
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)

              We’ll send you updates on this idea

              14 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →

              Thank you for your input. Based on its current ranking compared to other feedback items and product schedule, work on this item is pending (and will be driven by) further customer input. If you did not open this issue and are also impacted by it, please vote this item up.

            • Test-Path needs parameter for finding hidden files

              Votes from Connect: 5

              Original Date Submitted: 8/27/2015 8:45:51 PM

              Description:

              ********Contact Information********
              Handle: Eric Hodges
              Site Name: PowerShell
              Feedback ID: 1719027
              ***************************************

              Problem Description:
              Right now Test-Path has no way of checking for the existence of a hidden file. I would suggest -force to search all files (hidden or not), and/or -hidden to test only for hidden files.

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

              Repro Steps:
              Test-path hidden.txt
              True

              Test-Path h*.txt
              False

              Expected:
              True

              Internal BugId: 15763

              34 votes
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)

                We’ll send you updates on this idea

                0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
              • PS5: Get-Help -ShowWindow doesn't display help on parameters

                Votes from Connect: 23

                Original Date Submitted: 7/15/2015 10:30:37 PM

                Description:
                ********Contact Information********
                Handle: sba
                Site Name: PowerShell
                Feedback ID: 1549114
                ***************************************

                Frequency: PowerShell
                Regression: Run Get-Help for any command with the -ShowWindow parameter

                Problem Description:
                When I do "Get-Help <command> -ShowWindow", the resulting window doesn't contain the help on parameters, even if "Parameters" is checked under "Settings" (the default)

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

                Repro Steps:
                Run Get-Help for any command with the -ShowWindow parameter

                Expected Results:
                The resulting window should contain full help.

                Internal BugId: 15650

                32 votes
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)

                  We’ll send you updates on this idea

                  4 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                • PSv4+ New-PSSession with -CertificateThumbprint only works with ADCS generated certificates

                  I am unable to authenticate with a client certificate generated from OpenSSL or New-SelfSignedCertificate from a Windows 10 or 2012R2 powershell remoting client (likely broken in 8.1 but I did not test). I receive the following error:

                  new-PSSession : The WinRM client cannot process the request. If you are using a machine certificate, it must contain a DNS name in the Subject Alternative Name extension or in the Subject Name field, and no UPN name. If you are using a user certificate, the Subject Alternative Name extension must contain a UPN name and must not contain a DNS name. Change…

                  28 votes
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)

                    We’ll send you updates on this idea

                    0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                  • Implement cmdlets for manipulating Timezone on workstations and servers

                    currently Powershell does not provide a native cmdlet to manipulate timezone. this functionality would help enable desktop, server and DSC scenarios. I realize that calling tzutil.exe is a viable workaround. but it seems like an easy thing to expose as a cmdlet

                    24 votes
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)

                      We’ll send you updates on this idea

                      0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                    • Add ability to cancel Intellisense engine results

                      Right now, if an exception occurs in the argument completer, then it immediately returns, and "falls back" to the built-in filesystem / item-based auto-completion. If an exception occurs in my custom argument completers, I'd rather be able to cancel auto-completion altogether, rather than have a bunch of useless results be thrown at the user.

                      22 votes
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)

                        We’ll send you updates on this idea

                        1 comment  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                      • Enable users to stop pipeline/making StopUpstreamCommandsException public

                        Votes from Connect: 24

                        Original Date Submitted: 10/25/2012 1:54:42 PM

                        Description:
                        ********Contact Information********
                        Handle: TobiasWeltner
                        Site Name: PowerShell
                        Feedback ID: 768650
                        ***************************************

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

                        Problem Description:
                        In PSv3, the pipeline can be stopped. Select-Object supports this with its -First parameter by raising a (non-public) StopUpstreamCommandsException exception.

                        It is of great value to be able to stop the pipeline if your mission is completed before the emitting cmdlet has provided all results.

                        In fact, the PS pipeline would gain a completely new "feature". Currently, it is a memory throttle and…

                        20 votes
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)

                          We’ll send you updates on this idea

                          1 comment  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                        • Add easy column aliasing for Select-Object

                          In SQL, columns can be aliased as simply as this

                          Select GivenName as FirstName, Surname as "Last Name"

                          With PowerShell, I generally refer to a webpage or reference guide for a refresher on the syntax for Select-Object aliasing.

                          Select-Object @{Name="Surname";Expression={$_."Last Name"}}, @{Name="GivenName";Expression={$_."First Name"}}

                          I understand that Expressions are Powerful, but SQL supports similar power as seen in this example

                          Select GivenName AS FirstName, Surname AS 'Last Name' FROM names

                          SELECT NameChange =
                          CASE
                          WHEN Surname = 'LeMaire' THEN 'The Mayor'
                          END
                          FROM names

                          Please add easier column name aliasing for Select-Object.

                          17 votes
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)

                            We’ll send you updates on this idea

                            0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                          • #Requires -Module needs RequiredVersion option

                            Votes from Connect: 4

                            Original Date Submitted: 11/14/2015 5:05:21 AM

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

                            Problem Description:
                            To require the exact version of a module, I need a RequiredVersion option in #Requires.

                            The ModuleVersion key in the #Requires -Module hashtable: @{ModuleName=''; ModuleVersion=''} behaves as a minimum version requirement. Not all versions of all modules are backward-compatible. With the proliferation of versions, including side-by-side in PowerShell 5.0, we need to be able to require a particular version.

                            Also, about_Requires describes the ModuleVersion, but does not mention that it's a minimum (because I didn't…

                            17 votes
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)

                              We’ll send you updates on this idea

                              0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                            • Enhance Set-PSBreakpoint to allow us to set Exception breakpoints

                              It is annoying when I’m debugging in the ISE and an unhandled exception occurs - the ISE debugger just exits. It gives me no chance to debug the issue that caused the unhandled exception while still debugging. The importance of stopping **in** the debugger, is that I can examine the state of variables throughout the call stack which can be very helpful in tracking down "why" the unhandled exception occurred.

                              So first, I want to set an "unhandled" exception breakpoint that would cause PowerShell to “break into” the debugger on any unhandled exception i.e. put the brakes on just before…

                              16 votes
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)

                                We’ll send you updates on this idea

                                1 comment  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                              • Allow Environment Variable as default value for function parameter.

                                When defining a function, I would like to use an environment variable as the default value. If the environment variable exists and has a value that value will be used. For example,

                                function Get-Info ([Alias("name")] [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true)] [string] $projectName = $env:Project_Name)
                                {
                                }

                                Instead of having to passing in the Project Name for each call I would like to store it in an environment variable. When I do it would allow me to call Get-Info with no parameters and the value in the environment variable would be used. If the environment variable does not exist or is empty the user…

                                16 votes
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)

                                  We’ll send you updates on this idea

                                  3 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                                • We need a proper set of built-in, easy-to-use, dedicated registry cmdlets

                                  Managing registry keys and values on local and remote systems with PowerShell is a pain.

                                  Reviewing the articles, forums and blogs on the Internet clearly shows that new PowerShell users struggle to understand how to use registry provider drives and the cmdlets like New-Item, Get-ItemProperty, New-ItemProperty, and so on. This has prompted the creation of a variety of home-brew modules and functions to deal with the problem, like this one, which is extremely useful, but is not built into PowerShell by default of course:

                                  https://gallery.technet.microsoft.com/RegistryLibrarypsm1-b38a81ba

                                  PowerShell needs a proper set of built-in, dedicated registry cmdlets that 1) are easy to…

                                  15 votes
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    I agree to the terms of service
                                    Signed in as (Sign out)

                                    We’ll send you updates on this idea

                                    2 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                                  • 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…

                                    14 votes
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      I agree to the terms of service
                                      Signed in as (Sign out)

                                      We’ll send you updates on this idea

                                      0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Software Restriction Policy - Constrained Language Mode

                                      Excerpt from this article ‘Constrained PowerShell’ https://blogs.msdn.microsoft.com/powershell/2015/06/09/powershell-the-blue-team:

                                      "In version 5, Power Shell now reduces its functionality to "Constrained Mode" for both interactive input and user-authored scripts when it detects that Power Shell scripts have an ‘Allow Mode’ policy applied to them. Constrained Power Shell limits the language mode to Constrained Language (as described in about_Language_Modes), a mode first introduced for Windows RT.

                                      Constrained Language doesn’t limit the capability of the core Power Shell language – familiar techniques such as variables, loops, and functions are all supported. It does, however, limit the extended language features that can lead to unverifiable…

                                      14 votes
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        I agree to the terms of service
                                        Signed in as (Sign out)

                                        We’ll send you updates on this idea

                                        3 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                                      • 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
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          I agree to the terms of service
                                          Signed in as (Sign out)

                                          We’ll send you updates on this idea

                                          survey  ·  1 comment  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                                        • #Requires -Module error is confusing when version fails

                                          When a #Requires -Module version requirement (ModuleVersion, MaximumVersion, RequiredVersion) is not satisfied, the error message says that the module isn't found, not that the *version* of the module isn't found.

                                          This is potentially very confusing.

                                          & : The script 'Module.Help.Tests.ps1' cannot be run because the following modules that are specified by the "#requires" statements of the script are missing: Pester.
                                          At C:\ps-test\Test-PesterScriptParameter.ps1:18 char:3
                                          + & $TestPath -ModuleName PSScriptAnalyzer
                                          + ~~~~~~~~~
                                          + CategoryInfo : ResourceUnavailable: (Module.Help.Tests.ps1:String) [], ScriptRequiresException
                                          + FullyQualifiedErrorId : ScriptRequiresMissingModules

                                          14 votes
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            I agree to the terms of service
                                            Signed in as (Sign out)

                                            We’ll send you updates on this idea

                                            1 comment  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                                          ← Previous 1 3 4 5 15 16
                                          • Don't see your idea?

                                          Feedback and Knowledge Base