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. Using DontShow for a parameter should not hide all CommonParameters from auto-complete

    Using "DontShow = $true" for a parameter has the unexpected side effect of hiding all CommonParameters from auto-complete. The function below demonstrates the issue.

    function Get-Foo {

    [CmdletBinding()]
    param(
    [Parameter()]
    [string]
    $Visible,

    [Parameter( DontShow = $true )]
    [string]
    $NotVisible
    )

    process {
    Write-Verbose 'foo'
    }

    }

    1 vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)

      We’ll send you updates on this idea

      0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
    • TrimStart() method trimming more than specified

      Attempting to compare two strings. When constructing one of the strings, the TrimStart method is trimming more of the string than it should. Example:

      (Get-Content -Path 'C:\Program Files\SplunkUniversalForwarder\etc\system\local\server.conf' | Select-String -Pattern 'serverName').ToString().TrimStart('serverName = ')

      returns

      rver1.domain.company.com

      expected output is

      server1.domain.company.com

      I expanded the TrimStart method like so:

      (Get-Content -Path 'C:\Program Files\SplunkUniversalForwarder\etc\system\local\server.conf' | Select-String -Pattern 'serverName').ToString().TrimStart('serverName').TrimStart(' ').TrimStart('=').TrimStart(' ')

      and get the same erroneous output. The problem appears to be with trimming the last space character.

      1 vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        Signed in as (Sign out)

        We’ll send you updates on this idea

        1 comment  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
      • anaconda

        Anaconda (Python Environments) Syntax Support

        1 vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          Signed in as (Sign out)

          We’ll send you updates on this idea

          0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
        • 1 vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            Signed in as (Sign out)

            We’ll send you updates on this idea

            1 comment  ·  Documentation  ·  Flag idea as inappropriate…  ·  Admin →
          • 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
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              Signed in as (Sign out)

              We’ll send you updates on this idea

              1 comment  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
            • Unable to use PowerShell Transcription with Active Directory Administrative Console (ADAC)

              Setup group policy to enable PowerShell Transcripting. From a machine that has that policy applied, launch ADAC. The error "Cannot connect to any domain. Refresh or try again when connection is available." pops up and ADAC can't be used.

              https://github.com/PowerShell/PowerShell/issues/3021

              2 votes
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                Signed in as (Sign out)

                We’ll send you updates on this idea

                0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
              • Powershell 5.1 returns error on special characters when passing in an array of arguments

                Hello,

                I have Set the arguments in the code:

                $installArguments = "`"-p`" `"$ISMFileFolder`" -o `"$MergeModuleFolder`" -y `"$VersionNumber`" $PathVariableArguments -b `"$MediaOutputFolder`""

                and run the exe with arguments:
                & $IScmdBldRootDir $installArguments
                The same scripts is running fine on Windows server 2008 R2 that has the Powershell 4.0 and it fails and return error on Windows server 2016 that has the Powershell 5.1.
                The error is:
                -1113: The 'p E:\Builds\Installer' switch is not recognized.

                1 vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  Signed in as (Sign out)

                  We’ll send you updates on this idea

                  0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
                • BUG: The certificate for the WMF 5.1 setup has expired WMF 5.1 cannot be installed

                  The certificate for Win7AndW2K8R2-KB3191566-x64.msu has expire and installing WMF 5.1 fails with the following error in Event Log/Windows Logs/Setup

                  Windows update "Update for Windows (KB3191566)" could not be installed because of error 2148204801 "A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file." (Command line: ""C:\Windows\system32\wusa.exe" "C:\Users\username\Downloads\Win7AndW2K8R2-KB3191566-x64\Win7AndW2K8R2-KB3191566-x64.msu" ")

                  Is WMF 5.1 still supported?

                  3 votes
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    Signed in as (Sign out)

                    We’ll send you updates on this idea

                    2 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                  • 1 vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      Signed in as (Sign out)

                      We’ll send you updates on this idea

                      0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
                    • Support for NPM type version strings in PowerShell module manifest

                      packages.json in NPM (NodeJS in general) supports prefixes in the version string to specify a minimum required with minor and minor/patch versions being a variable. For example,

                      The tilde matches the most recent minor version (the middle number). ~1.2.3 will match all 1.2.x versions but won't match 1.3.0.

                      The caret provides better flexibility. It will refer to the most recent major version (the first number). ^1.2.3 will match any 1.x.x release including 1.3.0, but will hold off on 2.0.0.

                      Also, an asterisk (*) indicates that the latest version of the module is needed.

                      Implementing this type of version specification in…

                      10 votes
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        Signed in as (Sign out)

                        We’ll send you updates on this idea

                        1 comment  ·  Package Management  ·  Flag idea as inappropriate…  ·  Admin →
                      • Some new default cmdlet parameters?

                        We have -ErrorVariable and -WarningVariable. To capture verbose output to a variable, you can $VerboseRecords = (Write-Verbose -Verbose "test") 4>&1 # and find it in $VerboseRecords.Message, but wouldn't it make sense to add a -VerboseVariable? Maybe even a -WriteHostVariable?

                        3 votes
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          Signed in as (Sign out)

                          We’ll send you updates on this idea

                          2 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                        • Import-Module does not work with binary modules in exe files

                          I've tried putting my commands in an exe module, but could not get this module loaded in PowerShell.

                          1) If I try to load my module as-is, e.g. an .exe file I get "The extension '.exe' is not a valid module extension. "

                          2) If I create a .psd1 manifest and put RootModule = 'MyModule.exe' there I get Object reference not set to an instance of an object.
                          at Microsoft.PowerShell.Commands.ModuleCmdletBase.LoadModuleNamedInManifest(PSModuleInfo parentModule, ModuleSpecification moduleSpecification, String moduleBase, Boolean searchModulePath, String prefix, SessionState ss, ImportModuleOptions options, ManifestProcessingFlags manifestProcessingFlags, Boolean loadTypesFiles, Boolean loadFormatFiles, Object privateData, Boolean& found, String shortModuleName, Nullable`1 manifestLanguageMode)
                          at Microsoft.PowerShell.Commands.ModuleCmdletBase.LoadModuleManifest(String moduleManifestPath,…

                          1 vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            Signed in as (Sign out)

                            We’ll send you updates on this idea

                            0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                          • Add commandlets to configure NAT in the RemoteAccess module

                            Please, expand the RemoteAccess module with commandlets that allow you to configure simple NAT like you would do with the RRAS GUI.
                            So far, the module allow you to configure Direct Access and VPN but not NAT and it feels like it's missing.

                            1 vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              Signed in as (Sign out)

                              We’ll send you updates on this idea

                              0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
                            • Add SNMP Cmdlets (Get, Walk, Table, etc.)

                              Hi,

                              it would be very useful to have SNMP cmdlets available. SNMP is still defacto standard for managing many kinds of 'network-devices'.

                              It could help also considering IOT devices.

                              1 vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                Signed in as (Sign out)

                                We’ll send you updates on this idea

                                0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
                              • Missing help & command for IISAdministration Module

                                Relatively new to the PowerShell space and I apologize if this is a non-issue and just a user error.

                                Missing help from IISAdministration Module
                                OS: Microsoft Windows 10 Education (10.0.16299 N/A Build 16299)
                                Hotfixes Installed: [01]: KB4053577 [02]: KB4056887 [03]: KB4057247
                                [04]: KB4058043 [05]: KB4088785 [06]: KB4093110
                                [07]: KB4054517

                                Repro for missing: Get-Command
                                Import-Module .\IISAdministration.psm1
                                Get-Command -Module IISAdministration
                                Returns: Null

                                Repro for missing: Help
                                Save-Module -Name IISAdministration {$env:Path}
                                help *iis*
                                Returns Null
                                cd into the saved locale.
                                Invoke-Item .\IISAdministration_07640789-476a-4713-a091-f5b365129c32_HelpInfo.xml

                                The help URI returns error: This site can’t be reached

                                <HelpContentURI>http://go.microsoft.com/fwlink/?linkid=216321</HelpContentURI>

                                The other listed url in the helpinfo.xml file…

                                1 vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  Signed in as (Sign out)

                                  We’ll send you updates on this idea

                                  0 comments  ·  PowerShell Gallery  ·  Flag idea as inappropriate…  ·  Admin →
                                • Get-Certificate -SubjectAlternativeName

                                  Provide a means to specify an alternative Subject Alternative Name in the Certificate request. I have a need for requesting certificates with a specific CN for the subject name and they need to be supplied with a UPN in the subject Alternative Name Field. Currently the only option appears to be a -DNSName flag

                                  1 vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    Signed in as (Sign out)

                                    We’ll send you updates on this idea

                                    0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
                                  • [Bug] Paste doesn't work in ReadConsole() windows api prompt

                                    This bug may present a low-risk security concern for unaware end users, as reported in openssl here: https://github.com/openssl/openssl/issues/5864
                                    This bug should provide enough detail about the "password paste" problem we were seeing in powershell. In my opinion clipboard text should be able to be pasted (though not visible, as is the case with regular keyboard typing).

                                    1 vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      Signed in as (Sign out)

                                      We’ll send you updates on this idea

                                      0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Powershell and SCCM: Reporting and Querying Request

                                      It is exciting SCCM supports powershell, but it would be really great with some additional cmdlets focusing more on reporting and querying information.

                                      Querying user or device information through powershell would be great as we could then manipulate and generate CSV files of that data. Scripting of data involving attributes such as OS, IP, primary user, primary device, A/V alerts, etc. would be tremendously helpful.

                                      Additionally, cmdlets that allowed resolution of hostname from IP and vice versa would be helpful (sure, we could query other systems, but there are reasons why we wanted this info from SCCM specifically). Scripting resolution…

                                      1 vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        Signed in as (Sign out)

                                        We’ll send you updates on this idea

                                        0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
                                      • Add 'StopExisting' as a valid argument for New-ScheduledSettingsSet -MultipleInstances

                                        Only Parallel, Queue, and IgnoreNew are supported right now. One would expect that the option available from the Task Scheduler GUI would be available in the powershell interface.

                                        Steps to reproduce

                                        $a = New-ScheduledTaskSettingsSet -MultipleInstances StopExisting

                                        Expected behavior

                                        The task's multiple instances policy is set to kill existing tasks before starting another instance.
                                        Actual behavior

                                        value "StopExisting" to type "Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.MultipleInstancesEnum".
                                        Error: "Unable to match the identifier name StopExisting to a valid enumerator name. Specify one of the following
                                        enumerator names and try again:
                                        Parallel, Queue, IgnoreNew"
                                        At line:1 char:131
                                        + ... ngOnBatteries -ExecutionTimeLimit $b -MultipleInstances StopExisting
                                        + ~~~~~~~~~~~~
                                        + CategoryInfo…

                                        1 vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          Signed in as (Sign out)

                                          We’ll send you updates on this idea

                                          0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                                        • PowerShell does not fully convert a hashtable passed to a PSCustomObject parameter

                                          When passing a hashtable to a function parameter that expects a PSCustomObject, PowerShell does not fully convert the hashtable to a PSCustomObject type.

                                          function Test-1 {
                                          param(
                                          [PSCustomObject] $Foo
                                          )

                                          Write-Host "`$Foo's type is: $( $Foo.GetType().Name )" -Fore Green
                                          Write-Host "`$Foo is a PSCustomObject: $( $Foo -is [PSCustomObject] )" -Fore Green
                                          Write-Host "`$Foo has these properties:" -Fore Green

                                          foreach ($prop in ($Foo | Get-Member -MemberType NoteProperty| Select -ExpandProperty Name))
                                          {
                                          Write-Host "`t$prop" -Fore Green
                                          }
                                          }

                                          PS C:\Users\dabelc> Test-1 -Foo ( @{ "CustomProp" = "Value" } )
                                          $Foo's type is: Hashtable
                                          $Foo is a PSCustomObject: True
                                          $Foo has these properties:

                                          1 vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            Signed in as (Sign out)

                                            We’ll send you updates on this idea

                                            0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
                                          • Don't see your idea?

                                          Feedback and Knowledge Base