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. Make NetAdaper group accept -InterfaceIndex as well as -name

    With the "NetAdapter" group why do most of them not accept InterfaceIndex Number for selection? I would like to select my card by its Index so that even if its off / not active I can rename it, change its IP, powersettings etc. Lastly why can we not disable Netbios for the same cards this way?

    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 →
  2. test-dtc doesn't work on Windows 10 nor Windows Server 2016

    The test-dtc command tries to find some firewall rules that isn't present in either Windows 10 or Windows Server 2016 and will not complete it's testing because of this.

    In addition, it shouldn't test for firewall rules if firewall is disabled, since the firewall rules doesn't have any impact.

    The following firewall rules fails that they are disabled (but they don't exists):
    - RPC Endpoint Mapper
    - DTC incoming connections
    - DTC outgoing connections

    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 →
  3. Windows server 2019 failoverclusters module vs 2008R2 Clusters

    we have found some issues using the failoverclusters module builtin Windows Server 2019 when using it against a 2008R2 cluster in the domain. For example, we get this error while trying to Pause a node on a 2008R2 cluster: from a Windows server 2019 box

    Suspend-ClusterNode -Cluster cluster1 -Name cluster1node1
    Suspend-ClusterNode : An error occurred pausing node 'cluster1node1'.

    The procedure number is out of range
    

    At line:1 char:1
    + Suspend-ClusterNode -Cluster cluster1 -Name cluster1node1
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [Suspend-ClusterNode], ClusterCmdletException
    
    + FullyQualifiedErrorId : Suspend-

    ClusterNode,Microsoft.FailoverClusters.PowerShell.SuspendClusterNodeCommand

    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. Extraneous results returned with Resolve-DnsName (dnsclient)

    Quoted feedback from documentation feedback provided by MSFT team below. (via @jordanmills)

    > When resolving SRV records (example: Resolve-DnsName -Name "kerberos.tcp.dc._msdcs.$env:userdnsdomain" -Type SRV), the cmdlets also attempts to resolve any returned A or AAAA records and sends them to the pipeline as a separate object collection. This breaks pretty much any attempt to sort, group, filter, or otherwise process the data. How can we make it not return A and AAAA records for SRV queries?

    https://github.com/MicrosoftDocs/windows-powershell-docs/issues/302

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

    We’ll send you updates on this idea

    2 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  5. Provide PowerShell module to manage Local Security Policy

    We've now got the the DSC modules for this, but a standalone module for use outside of DSC would be extremely useful

    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. Bug in Import-StartLayout cmdlet

    The documentation states to import a .xml to a mounted Windows image, you can use the powershell command:
    PS C:\ Import-StartLayout -LayoutPath "Layout.xml" -MountPath "E:\MountedImage"

    This will generate an error. You cannot end -MountPath with a '' character, if you do, PowerShell throws the error:
    Import-StartLayout : The path B:\WIMs\Test\ did not resolve to a file.

    If you format the command:
    PS C:\ Import-StartLayout -LayoutPath "Layout.xml" -MountPath "E:\MountedImage"
    You will receive the following error:
    Import-StartLayout : Could not find a part of the path
    'E:\MountedImageUsers\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml'.
    Note the missing '' character between "MountedImage" and "Users"
    This appears to be an error…

    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 →
  7. Missing newer computer account in Get-LocalUser on a DC

    in PowerShell 5.1.14393.2608 when I run Get-LocalUser * on a Windows Server 2016 Domain Controller I should get a list of all domain user and computer. But the newest Domain joined computer is missing.
    Please fix this.
    Also when I run Get-LocalUser MyComputer$ and MyComputer is the last domain joined computer I get ObjectNotFound

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

    We’ll send you updates on this idea

    1 comment  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  8. How to create external trust relationships between two domains?

    How to create external trust relationships between two domains, such as aaa.com and bbb.com. I haven't seen a similar demo for two days.
    Looking forward to your reply.

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

    We’ll send you updates on this idea

    1 comment  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  9. How to create external trust relationships between two domains?

    How to create external trust relationships between two domains, such as aaa.com and bbb.com. I haven't seen a similar demo for two days.
    Looking forward to your reply.

    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 →
  10. A replacement for New-WebServiceProxy for SOAP calls

    Add the ability to make SOAP calls which originally was done using New-WebServiceProxy.

    SOAP services are still common in both small companies and large enterprise where some products only have this method of integration. Many legacy systems both purchased and built in house use SOAP and will continue to for a significant time as the cost of upgrading is either too great, does not make commercial sense or simply impossible.

    I have only just started to look at PowerShell 6 and this is a complete road block for using it at this time. If there are alternative options without having…

    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 →
  11. Enable-ClusterStorageSpacesDirect Needs a -FORCE parameter for consistency

    The Enable-ClusterStorageSpacesDirect cmdlet does not have a -FORCE parameter.

    When you run the cmdlet, you get a pop-up confirmation prompt. To avoid this, the cmdlet should have a -FORCE parameter.

    It's true you can use -CONFIRM:$FALSE - but that is inconsistent with other cmdlets throughout PowerShell.

    For consistency add a -FORCE parameter to this cmdlet that avoids the popup confirmation. OF course, for compatibility, keep the $Confirm:$False.

    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 →
  12. 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 →
  13. 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 →
  14. 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 →
  15. Get- and Remove-DnsServerResourceRecord deficiencies

    Get- and Remove-DnsServerResourceRecord have a couple of deficiencies:

    1) most cmdlets support piping from Get- to Remove-, this does not currently work properly with Remove-DnsServerResourceRecord...

    "The input object cannot be bound because it did not contain the information required to bind all mandatory parameters: ZoneName"

    So, the objects returned from Get-DnsServerResourceRecord should contain the ZoneName property.

    2) Remove-DnsServerResourceRecord does not respect -Confirm:$false, even when it's specified, it asks for confirmation every time.

    i.e. this will ask for confirmation 200 times if you have 200 records (and -ZoneName must be specified because of the aforementioned issue!), at least thankfully you…

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

    We’ll send you updates on this idea

    2 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  16. Unregister-ScheduledJob -Name 'Name' -WhatIf does not honor WhatIf

    Steps to reproduce

    Import-Module PSScheduledJob
    Register-ScheduledJob -Name 'test' -ScriptBlock {echo 'hello world'}
    Unregister-ScheduledJob -Name test -WhatIf
    Get-ScheduledJob

    Expected behavior

    I expect the job to still be there.

    It does work with Unregister-ScheduledJob -Id 11 -WhatIf.

    Actual behavior

    The scheduled job is corrupted.

    Get-ScheduledJob : Cannot get the test scheduled job because it is corrupted or in an irresolvable state. Because
    it cannot run, Windows PowerShell has deleted test and its results from the computer. To recreate the scheduled
    job, use the Register-ScheduledJob cmdlet. For more information about corrupted scheduled jobs, see
    aboutScheduledJobs_Troubleshooting.

    Environment data

    > $PSVersionTable
    Name Value

    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. 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 →
  18. 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 →
  19. 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.

    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 →
  20. BUG: Set-Clipboard -AsHtml puts invalid CF_HTML on clipboard with non-ASCII text

    Repro with PowerShell 5.1.14986.1000:
    1) Set-Clipboard -AsHtml "abc"
    2) Paste into Word
    3) Text appears correctly as: abc
    4) Set-Clipboard -AsHtml "àbc"
    5) Paste into Word
    6) Text appears incorrectly as: ࢣ

    Appears CP 1251 text is being put in the CF_HTML, not UTF8.

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

    We’ll send you updates on this idea

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

Feedback and Knowledge Base