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. Register-ScheduledTask

    Register-ScheduledTask -password parameter should accept secure string or PScredential. Currently it accept plain text and the password shows up in event log when register

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

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  2. Set-mpioSetting -NewRetryInterval input validation is too strict

    When I run the following command in powershell
    (Windows Server 2012 R2, PS Version - 5.1.14409.1005)

    "Set-mpioSetting -NewRetryInterval 1 "
    returns the error
    "Set-MPIOSetting : Cannot validate argument on parameter 'NewRetryInterval'. The 1 argument is less than the minimum allowed range of 3. Supply an argument that is greater than or equal to 3 and then try the command again."

    The documentation at https://docs.microsoft.com/en-us/powershell/module/mpio/set-mpiosetting?view=win10-ps says that the default is 1 second, and we can use the GUI to be able to set the retry interval, but I want to be able to use powershell to automate the configuration of my…

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

    We’ll send you updates on this idea

    1 comment  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  3. Powershell Windows defender bug

    I found a bug with windows defender cmdlets!
    Cmdlet:
    set-mppreference -scanscheduletime
    set-mppreference -scanschedulequickscantime

    Providing an argument in format HH:mm works for values from 00:00 to 16:59 works as expected and when running get-mppreference the scanscheduletime and scanschedulequickscantime fields show the time requested.

    Providing a time past 7pm (17:00) and then running get-mppreference shows the time in the format 2982615.22:16:00, which i believe means ~3 million days in the future.

    windows 10 enterprise build 171314
    windows server 2016 datacenter build 14393

    Please let me know if you would like any further details!

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

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

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

    We’ll send you updates on this idea

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

    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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  6. How do I download modules manually from gallery behind a firewall/proxy?

    For companies like banks which are very restrictive regarding internet downloads, I have no internet connectivity directly from powershell, only from my browsers. As such I cannot use install-module from powershell.

    Our desktops are only windows 7 but locked down running ps version 2 and powershell console doesn't have proxy access. I cannot run install-module on my servers neither as my servers have no internet connection.

    Is there a workaround to download a module manually as a zipped file so that I can I unzip and install them manually in my server?

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

    We’ll send you updates on this idea

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

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

    We’ll send you updates on this idea

    8 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
    survey  ·  Zachary Alexander responded

    We don’t own the creation of modules for operating system features. I’ll mark this as Survey so we can provide this information to the WU team, but you might also want to consider filing this in the Windows 10 Feedback Hub. Also, see the community-created PSWindowsUpdate link below :)

  8. copy-item

    Add -Directory and -File switch parameters to Copy-Item, just like Get-ChildItem.

    A -File switch would make it possible to avoid copying empty folders. Also, in some situations (see [question posted on StackOverflow](https://stackoverflow.com/questions/48026637/powershell-copy-item-doesnt-copy-when-filter-is-used/48026959?noredirect=1#comment83054046_48026959) getting the desired result requires Convert-Path | Copy-Item, but then "already exists" errors arise due to copying the folder multiple times. A -Files switch would avoid those errors. (Currently, you'd have to add -Force if you want to suppress the errors.)

    A -Directory switch would provide an equivalent to xcopy /T.

    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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  9. Make PowerShell PKI module cross-platform with PS Core incl New-SelfSignedCertificate

    PowerShell Core doesn't include the PKI module, which has the New-SelfSignedCertificate cmdlet. It would be great to have it available cross-platform.

    Hence the feature request to make the PKI module cross-platform and compatible with PS Core to be distributed in the PowerShell Gallery: https://www.powershellgallery.com

    Feature request with PS Core team and the reference to this UserVoice here:
    https://github.com/PowerShell/PowerShell/issues/3715

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

    We’ll send you updates on this idea

    4 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  10. 23 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    6 comments  ·  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.

  11. Bug: Integrated Modules are not loaded if you have a Network Path in $env:PSModulePath which is not reachable

    Integrated Modules are not loaded if you have a Network Path in $env:PSModulePath which is not reachable.

    #

    I have customized the PSModulePath:

    PS C:\Users\username> ($env:PSModulePath).split(';')
    C:\Users\username\Documents\WindowsPowerShell\Modules
    C:\Program Files\WindowsPowerShell\Modules
    C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
    c:\Program Files\Microsoft Security Client\MpProvider\
    C:\Program Files\Microsoft Monitoring Agent\Agent\PowerShell\
    \my.domain\share\Modules\

    #

    If i try to execute e.g. Invoke-RestMethod

    PS C:\Users\username> Invoke-RestMethod
    Invoke-RestMethod : The 'Invoke-RestMethod' command was found in the module 'Microsoft.PowerShell.Utility', but the
    module could not be loaded. For more information, run 'Import-Module Microsoft.PowerShell.Utility'.
    At line:1 char:1
    + Invoke-RestMethod
    + ~~~~~~~~~~~~~~~~~

    + CategoryInfo          : ObjectNotFound: (Invoke-RestMethod:String) [], CommandNotFoundException
    
    + FullyQualifiedErrorId : CouldNotAutoloadMatchingModule

    PS C:\Users\username> Get-Command Invoke-RestMethod
    Get-Command : The term…

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

    We’ll send you updates on this idea

    1 comment  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  12. Disable-ScheduledTask -TaskName will fail with tasks including spaces in name.

    Steps to reproduce

    Disable-ScheduledTask -TaskName "Data Integrity Scan for Crash Recovery"
    Disable-ScheduledTask : The system cannot find the file specified.
    At line:1 char:1
    + Disable-ScheduledTask "Data Integrity Scan for Crash Recovery"
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : ObjectNotFound: (PS_ScheduledTask:Root/Microsoft/...S_ScheduledTask) [ 
    

    Disable-ScheduledTask], CimException

    + FullyQualifiedErrorId : HRESULT 0x80070002,Disable-ScheduledTask
    

    Expected behavior

    This should disable the scheduled task and not crash.

    You can workaround this by searching for the task object and disabling that way:

    $Name = "Data Integrity Scan for Crash Recovery"
    Get-ScheduledTask | where-object {($_.TaskName -eq $Name)} | Disable-ScheduledTask

    Actual behavior

    Crashes with the following exception:
    Disable-ScheduledTask : The system cannot find…

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

    We’ll send you updates on this idea

    1 comment  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  13. Add support for TLS 1.2 (Invoke-WebRequest, Invoke-RestMethod)

    Invoke-WebRequest and Invoke-RestMethod commands only support TLS 1.0 protocol. We need to have a native support for newer TLS (1.2) versions for modern web interfaces.

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

    We’ll send you updates on this idea

    6 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
    survey  ·  Zachary Alexander responded

    changing to Survey based on Joonas’ comment below – request is to have a flag to force TLS 1.2.

  14. get-command -module only shows aliases with verb-noun naming

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

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

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

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  15. Compress-Archive throws "OutOfMemory" on large folders

    When using Compress-Archive on a very large folder, I am getting a "OutOfMemory Exception" error. This also happens when I pipe the folder from Get-ChildItem.

    PS E:&gt; Compress-Archive -Path \servername\downloads\foldername -DestinationPath e:\Foldername_bef
    ore-12-01-2016.zip -CompressionLevel Optimal
    Exception calling "Write" with "3" argument(s): "Exception of type 'System.OutOfMemoryException' was thrown."
    At
    C:\windows\system32\windowspowershell\v1.0\Modules\Microsoft.PowerShell.Archive\Microsoft.PowerShell.Archive.psm1:809
    char:29
    + ... $destStream.Write($buffer, 0, $numberOfBytesRead)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    
    + FullyQualifiedErrorId : OutOfMemoryException

    PS E:&gt; $Psversiontable

    Name Value


    PSVersion 5.0.10586.117
    PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
    BuildVersion 10.0.10586.117
    CLRVersion 4.0.30319.34209
    WSManStackVersion 3.0
    PSRemotingProtocolVersion 2.3
    SerializationVersion 1.1.0.1

    PS E:&gt;

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

    We’ll send you updates on this idea

    3 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  16. Get-AuthenticodeSignature TimeStamperCertificate broken

    Problem:

    Get-AuthenticodeSignature does not return a time stamper certificate for files which have been time stamped with a valid time stamp server.

    Steps to reproduce:

    Using signtool.exe (from Windows SDK), view the signature info for signtool.exe. Verify that it has been time stamped, and that you can see the time stamper certificate.

    Using Get-AuthenticodeSignature, view the signature of signtool.exe. Notice that the TimeStamperCertificate field is blank.

    Consequences:

    Powershell will report any signed file as valid as long as the signature is valid, regardless of whether or not the timestamp is valid.

    Powershell version:
    Major Minor Build Revision


    5 1 14393…

    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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  17. Some Storage cmdlets do not work in WinPE

    At least Clear-Disk and New-Partition cmdlets from Storage module do not work in Windows PE. Nothing happens if you launch any of them, no any output/result. There may be more cmdlets not working in Windows PE.
    There is a topic on TechNet https://social.technet.microsoft.com/Forums/windowsserver/en-US/3a0e7e9c-f1ea-4324-8a17-f4c447efcbb0/some-storage-cmdlets-do-not-work-under-winpe?forum=winserverpowershell

    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  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  18. Implement native robocopy cmdlet

    Votes from Connect: 72

    Original Date Submitted: 2/23/2011 3:47:03 AM

    Description:
    Contact Information
    Handle: Joel Reinford
    Site Name: PowerShell
    Feedback ID: 646172


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

    Problem Description:
    Powershell needs the full functionality of Robocopy as a cmdlet. Copy-Item has too many limitations and invoking robocopy from Powershell is not an elegant solution.

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

    Repro Steps:
    Expected Results:

    Internal BugId: 2822

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

    We’ll send you updates on this idea

    15 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  19. ConvertTo-Json doesn't serialize simple objects properly

    Given a simple array which has been boxed in a PSObject

    [PSObject]$o = @(@(Foo,1),@(Bar,2))

    Calling ConvertTo-Json returns a weird pointless wrapper around it:

    convertto-json $o
    {

    &quot;value&quot;:  [
    
    [
    &quot;Foo&quot;,
    1
    ],
    [
    &quot;Bar&quot;,
    2
    ]
    ],
    &quot;Count&quot;: 2

    }

    Which completely breaks round-trip support

    ConvertFrom-Json (Convertto-Json $o)

    value Count


    {Foo 1, Bar 2} 2

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

    We’ll send you updates on this idea

    survey  ·  14 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  20. Invoke-WebRequest returned object hangs when accessing Links property

    OS: Windows 7 - 10

    Name : ConsoleHost
    Version : 5.0.10586.117
    InstanceId : 078d4e23-84fd-433c-a831-37bb0935166e
    UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
    CurrentCulture : en-US
    CurrentUICulture : en-US
    PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
    DebuggerEnabled : True
    IsRunspacePushed : False
    Runspace : System.Management.Automation.Runspaces.LocalRunspace


    Not working example:

    $releases = 'https://github.com/hluk/CopyQ/releases&#39;
    $downloadpage = Invoke-WebRequest -Uri $releases -UseBasicParsing
    $download
    page.links # <-- hangs here

    Other properties seem to work normally.


    This example uses basic parsing and works without out. However, the behavior doesn't generally depend on this setting and I had sites that hang on many occasions.

    The following issues seems related:

    https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/11088744-invoke-webrequest-hangs-in-some-cases-unless-use
    https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/11515881-invoke-webrequest-hangs-freeze-at-many-websites

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

    We’ll send you updates on this idea

    survey  ·  4 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Feedback and Knowledge Base