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. Compiling large number of DSC MOF files is slow

    We use logic to dynamically compose a ConfigurationData structure and pass it to the configuration. This logic executes quickly. Calling the configuration generates more than 5,000 MOF files for unique nodes. The process takes 1.5 hours on modern server-class hardware with 16GB RAM. Also, the MOF files are all created at the end of the process, rather than one-at-a-time throughout the process. This causes high memory usage. Please optimize the PSDesiredStateConfiguration module to generate large quantities of MOF files more quickly. This issue adds significant delay to the DSC pipeline.

    10 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

      6 comments  ·  Desired State Configuration (DSC)  ·  Flag idea as inappropriate…  ·  Admin →
    • Curated Module Lists

      The PowerShell gallery should allow users to create "lists" of modules (think of it as an Amazon wish list).

      A user could create a "favorites" list and add modules and scripts to it to keep track of their favorites over time (maybe even "subscribe" to notifications of new releases of things on the list).

      A user could also create a "user management modules" list or a "stretching PowerShell's limits" list or a "should have been in the box" list, or a "things I use in my prompt" list ...

      But most importantly, users should be able to SHARE those lists,…

      12 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  ·  0 comments  ·  PowerShell Gallery  ·  Flag idea as inappropriate…  ·  Admin →
      • 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.

        3 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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
        • 3 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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →

            Would be interested in understanding the scenario where you are using the cmdlet & specifying the reason for rebooting. To explain: our previous assumption was that users would EITHER use the server UI that captured this information, OR use the cmdlet (often so they didn’t need to supply that reason text).
            So, what would help is to understand in what situations the cmdlet is being used and specifying the reboot explanation is desirable.

          • 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…

            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 →
            • Add a PowerShell module to manage Windows Updates

              Add a PowerShell module to manage Windows Updates like you can now with the GUI. Like checking for updates, installing all updates, or a selection of updates, creating a report of pending updates, etc. The Windows Update options in the Server Configuration Manager (sconfig) are very limited.

              4 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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
              • 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.

                2 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  ·  0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
                • WinUserLanguageList : InputMethodTips has been documented as Read\Write but is only Read

                  PS C:\Users\Administrator> $objLanguageList=New-WinUserLanguageList -Language us-US

                  PS C:\Users\Administrator> $objLanguageList[0].InputMethodTips="0409:0000040C"
                  'InputMethodTips' is a ReadOnly property.
                  At line:1 char:1
                  + $objLanguageList[0].InputMethodTips="0409:0000040C"
                  + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  + CategoryInfo : InvalidOperation: (:) [], RuntimeException
                  + FullyQualifiedErrorId : PropertyAssignmentException

                  PS C:\Users\Administrator> $objLanguageList |Get-Member -Name InputMethodTips

                  TypeName: Microsoft.InternationalSettings.Commands.WinUserLanguage

                  Name MemberType Definition
                  ---- ---------- ----------
                  InputMethodTips Property System.Collections.Generic.List[string] InputMethodTips {get;}

                  PS C:\Users\Administrator>

                  1 vote
                  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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
                  • WMF 5 - Invalid callee when using variant wrapper

                    If I use the Runtime.InteropServices.VariantWrapper in WMF5 I get errors trying to interact with the system center orchestrator 2012 com object.. (x86)

                    IE if I do this without WMF5:

                    $oisMgr = new-object -com OpalisManagementService.OpalisManager
                    $oHandle = New-Object Object
                    $handle = New-Object Runtime.InteropServices.VariantWrapper($oHandle)
                    $oisMgr.Connect($Username, $Credential.Password, [ref]$handle)

                    It works fine, if I run with WMF5 I get an Invalid Callee Error.

                    OS is windows 2012.. thinking about it as I write this, has the 'Object' type changed at all between the two?

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

                      To be honest PowerShell historically does not handle variants particularly well. We may have regressed in this area, which would be bad, so we have question and some pointers to articles that may help.

                      Can you give us the information in $PSVersionTable, please?

                      There is a good article in StackOverflow that talks about using Variants and offers some suggestions: http://stackoverflow.com/questions/30512785/retrieving-session-id-from-com-method

                      One of the better suggestions is in a link from that article: http://www.archivum.info/microsoft.public.windows.powershell/2010-01/00361/RE--quot-Invalid-callee-quot--calling-a-com-object.html. While the content is valuable, I will apologize in advance for the ad placement on that page :-(

                    • Add a rich GPO provider

                      I'd like to see a good, rich GPO provider. One that would allow me to do a set-location to some node in any .ADM/.ADMX we have loaded, would allow me to load/remove ADMXs from scope, and get/set/new any value.

                      The idea is to enable IT Pros to automate fully any setting in any GPO object.

                      3 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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
                      • Enable-NetLldpAgent not useful

                        The Enable-NetLldpAgent , in order to be useful in proper management of a network, should allow setting TLV subtypes.
                        Or...........Some options I would prefer:
                        set TLV 1 to ID subtype 5 (network address) instead of subtype 4 (MAC address)
                        set TLV 2 to ID subtype 5 (interface name) instead of 3 (MAC address)

                        include the optional TLV 5 system name

                        MAC address is easily obtained by other networking tools. Using this as the information for mandatory TLVs is redundant and useless.

                        1 vote
                        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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
                        • Write-Host -NoNewLine and Transcription

                          Starting with WMF 5.0 the -NoNewLine option for Write-Host is essentially ignored in the transcripts created using Start-Transcript.

                          Simple example script:

                          Start-Transcript log.txt
                          Write-Host -NoNewLine "this should all"
                          Write-Host -NoNewLine "be on one line"
                          Write-Host -NoNewLine "in the log.txt file"
                          Stop-Transcript

                          3 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 →
                          • encourage youth to PowerShell

                            It would be a great motivation for young admins (e.g. students) to start learn PowerShell if it out of a box has commands concerning desktop computers in a workgroup environment. I think of managing local users, groups, dealing with screen resolution or power management, system updates - just simple stuff for everyday use.

                            2 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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
                            • DynamicParam should recognize quoted string arguments (at least single quoted)

                              Using PSVersion 5.1.14393.576

                              Allowing quoted literals would be useful to allow argument values spaces.

                              Function Show-DynamicParam {

                              [CmdletBinding()]
                              Param(
                              [Parameter()]
                              [string]
                              $Test
                              )

                              DynamicParam {
                              if ($Test -ine 'test') {
                              throw "Does not work. Value was '$Test'"
                              }

                              $ParameterDictionary = New-Object System.Management.Automation.RuntimeDefinedParameterDictionary
                              $Parameter = New-Object System.Management.Automation.RuntimeDefinedParameter('works', [switch], [System.Management.Automation.ParameterAttribute]::new())
                              $ParameterDictionary.Add('works', $Parameter)
                              return $ParameterDictionary
                              }

                              Process {

                              }

                              }

                              # when using an argument literal the -works switch appears
                              Show-DynamicParam -Test test -works

                              # when using a string literal the value of $Test is 'test' WITH the quotes, see $Error[0]
                              Show-DynamicParam -Test 'test' -

                              1 vote
                              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 →
                              • MSFT_WebDownloadManager issue

                                Hi there,
                                Please advise on the following failure I am facing while trying to apply DSC changes on the remote machine:
                                "
                                PS C:\Windows\system32> Set-DscLocalConfigurationManager -Path .\LCMPullMode
                                Undefined class: MSFT_WebDownloadManager
                                At line:15, char:2
                                Buffer:
                                Connection = True;
                                };^
                                ins
                                + CategoryInfo : SyntaxError: (root/Microsoft/...gurationManager:String) [], CimException
                                + FullyQualifiedErrorId : MiClientApiError_Failed
                                + PSComputerName : be-lab-v17
                                "

                                Thanks in advance,
                                Ofer

                                1 vote
                                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  ·  Desired State Configuration (DSC)  ·  Flag idea as inappropriate…  ·  Admin →
                                • WMF 5.1 RestrictedRemoteServer session type fails to import the 'Microsoft.PowerShell.Utility' module

                                  When importing this module in a restricted session type or when making a function or a cmdlet from this module visible, i.e:
                                  VisibleFunctions = 'Get-FileHash'
                                  the following message is returned:
                                  WARNING: The 'Microsoft.PowerShell.Utility' module was not imported because the 'Microsoft.PowerShell.Utility' snap-in was already imported.
                                  In practice, the module is not being imported.
                                  Get-PSSnapin shows that a snapin with the same name is indeed loaded:
                                  Name : Microsoft.PowerShell.Utility
                                  PSVersion : 5.1.14409.1005
                                  Description : This Windows PowerShell snap-in contains utility
                                  cmdlets that are used to view and organize data in different ways.
                                  but exposes no commands
                                  Get-PSSnapin from a regular (not remote)…

                                  1 vote
                                  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  ·  WinRM  ·  Flag idea as inappropriate…  ·  Admin →

                                    This report is a bit confusing, so need some information.
                                    On the system where you received this error, please try running any of the commands from Microsoft.PowerShell.Utility, such as get-member, or get-date. The error message and the information you provided seems to indicate that the module is already loaded, so we are looking for other indications that it is not.

                                  • Get-AppxPackage not accepting pipeline input

                                    The Get-AppxPackage command does not appear to accept pipeline input.

                                    These work:

                                    Get-AppxPackage -Name "9E2F88E3.Twitter"
                                    Get-AppxPackage "9E2F88E3.Twitter"
                                    "9E2F88E3.Twitter" | Foreach { Get-AppxPackage $_ }

                                    These do not work and return nothing at all:

                                    "9E2F88E3.Twitter" | Get-AppxPackage
                                    "9E2F88E3.Twitter" | Select @{ Name="Name"; Expression={$_} } | Get-AppxPackage

                                    Using the -Verbose parameter simply gives:

                                    VERBOSE: No packages found.

                                    1 vote
                                    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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Ability to delete unlisted module with no downloads

                                      It would be nice to be able to delete a module that hasn't been downloaded yet and is unlisted. I made a mistake in publishing a module which I unlisted before anyone downloaded it. There is no benefit to me or anyone having it remain in the gallery.

                                      None of the follwing published reasons for disallowing deletions apply:

                                      1. Other items may depend on that item. Those items might not necessarily be in this gallery.
                                      2. Ensures that folks using items without committing the same will not be broken.
                                      3. Helps ensure that important community owned items are not mass…

                                      1 vote
                                      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 Gallery  ·  Flag idea as inappropriate…  ·  Admin →

                                        We understand the ask, & are leaving it as Survey to gauge the interest level.

                                        For now, you can use the Contact Us link to specify the item & version that you want deleted. Specify why you feel that this is something that should not be left in the Gallery, providing more detail is likely to help.
                                        The Gallery operations team will investigate and, if it meets what is actually a very high bar, will delete it.

                                      • Bug: Here string - When using invoke-command when here string starts with [

                                        Using a here string to create an LCM file using a Hyper-V VM and invoke-command.
                                        If the here string starts with [ the file created is blank if viewing with get-content. Viewing the file with PSEdit, the file is full of squares.

                                        Code used to generate this:

                                        $lcmscript = @'
                                        [DSCLocalConfigurationManager()]
                                        configuration LCMPush
                                        {
                                        Node $AllNodes.Where{$_.Role -eq "Primary DC"}.Nodename
                                        {
                                        Settings
                                        {
                                        RebootNodeIfNeeded = $true
                                        ActionAfterReboot = 'ContinueConfiguration'
                                        ConfigurationMode = 'ApplyAndAutoCorrect'
                                        CertificateID = "REPLACEWITHFRESHLYCREATEDTHUMBPRINT"
                                        }
                                        }
                                        }

                                        # Create the computer.meta.mof in folder
                                        LCMPush -configurationData c:\dsc\dscconfigdata.psd1 `
                                        -OutputPath c:\dsc\LCM
                                        '@

                                        Invoke-Command -VMName $vmname -Credential $cred -ScriptBlock { New-Item c:\dsc\lcm -ItemType…

                                        1 vote
                                        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 option for New-WebServiceProxy to use existing assembly

                                          New-WebServiceProxy dynamically generates a new assembly with the types for a web service and adds it to the AppDomain every time it's called, even for the same URI with the same credentials.

                                          Please add a parameter to New-WebServiceProxy that will allow it to use an existing assembly if possible. Even if the caller had to specify the assembly, that would be helpful.

                                          1 vote
                                          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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
                                          ← Previous 1 3 4 5 53 54
                                          • Don't see your idea?

                                          Feedback and Knowledge Base