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. Start-Transcript causes skipped records when passing SqlDataReader object to another function

    Encountering an issue with Start-Transcript, SQLDataReader and Passing it to a function for processing. This occurs in Powershell 6, started in 5.1, was not present in Windows Powershell 3 (Windows Powershell 4 has issues passing the SqlDataReader object to a function anyway).

    When you call a function within a Start-Transcript block, and that function then fills a SqlDataReader object, and then passes it onto another function, it increments the record a number of times, as if calling the read() method 7 or 8 times. This causes a number of issues, firstly, a lot of data is skipped for processing, secondly,…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  2. "Open PowerShell window here" broken if file path contains a single quote

    If the current directory, or any of its parent directories, contains a single quote in its name, doing "Open PowerShell window here" in it results in the following:

    The string is missing the terminator: '.

    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString

    PS C:\WINDOWS\system32>

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  3. ConvertFrom-String

    Make ConvertFrom-String available in PowerShell core as it's super useful when parsing txt files.

    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. New request -- get-winevent :get all log generated by a specific user

    If I try to find when the user abc.cd logon to my computer.
    I will do a log query as follow.
    Get-WinEvent -FilterHashtable @{logname='security';data='abc.cd';id=4624}

    If I want to know when a software was install on computer.
    I will do a log query as follow.
    Get-WinEvent -FilterHashtable @{logname='application';id=11707}

    but It does not work with a user ID as follow.
    Get-WinEvent -FilterHashtable @{logname='application';id=11707;data='abc.cd'}

    What I do I want is collectting all logs that caused by the user abc.cd by using get-winevent , like he installs a new software , he starts a service ,he starts a scheduled task ..

    expected cmdlet:
    Get-WinEvent…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  5. Allow use of curly braces for special cases

    Such as git stash apply stash@{2} instead of need for inside quotes "" "stash@{2}"

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  6. Creating a symbolic link requires administrator privilege

    Since some version of Windows 10, creating a symbolic link should not require administrator privilege. In cmd, using mklink to create a symbolic link without administrator privilege works, but New-Item in PowerShell doesn't work.

    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. While passing a json stream to a out file PS fails while cmd succeeds. Ending '}' bracket is missing.

    Steps to reproduce


    1. I use a tool called rabtap to publish messages to rabbitMQ. Tool can be found here: https://github.com/jandelgado/rabtap

    2. When I tap on an exchange and redirect output to a file.
      -> It comes OK when I use this cmd on cmd prompt (i.e., as here): rabtap tap "myexchange:" --json > c:\tmp\usingCMDline.txt"
      -> However if I redirect the output using powershell, I miss out the ending bracekt in the output file. rabtap tap "myexchange:" --json | Out-File "c:\tmp\ps02.txt" (see attached output)

      Expected behavior

      Full JSON should output, as done by the cmd line redirect operator.



    Actual behavior

    Miss out…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  8. BUG: Powershell .net class loads slow since MS-Security Update April 2019

    Since May 2019 Security Rollup for Windows Server 2016, access to .net object via powershell is very slow, when a powershell variable breakpoint is set in the powershell.

    For example loading speed of [System.Environment] takes over ten times with breakpoint set against no breakpoint set.

    Since the behavior only occurs with latest security updates installed (May 2019 (KB4494440) or June 2019 (KB4503267)) i think it is related to the update.

    Did some troubleshooting with procmon until now. For me it looks like when PSBreakpoint is set, there are multiple reads from HKLM\System\CurrentControlSet\Control\Session Manager\Environment__PSLockdownPolicy can't repoduce this when there is no…

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  9. Brackets Treated As Special Characters In Single Quotes

    Steps to reproduce

    In File Explorer on an NTFS volume, create the file: [abc].txt

    Following this run:

    PS> ls '[abc].txt'

    Expected behavior

    Directory: C:\Users\Dave
    

    Mode LastWriteTime Length Name


    -a---- 2019-05-06 12:07 AM 0 [abc].txt

    Actual behavior

    No output displayed.

    Environment data

    Name Value


    PSVersion 5.1.17763.316
    PSEdition Desktop
    PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
    BuildVersion 10.0.17763.316
    CLRVersion 4.0.30319.42000
    WSManStackVersion 3.0
    PSRemotingProtocolVersion 2.3
    SerializationVersion 1.1.0.1

    Additional Cases and Information

    The file name can be displayed using tab completion, but the brackets are preceded by back ticks, which indicates that Windows can see the file and assumes that the brackets are special characters. When…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  10. Get-ChildItem -LiteralPath doesn't support long path

    Get-ChildItem -LiteralPath doesn't support long path, for example:

    Get-ChildItem -LiteralPath 'D:\aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffgggggggggghhhhhhhhhhiiiiiiiiiijjjjjjjjjjkkkkkkkkkkllllllllllmmmmmmmmmmnnnnnnnnnnooooooooooppppppppppqqqqqqqqqqrrrrrrrrrrssssssssssttttttttttuuuuuuuuuuvvvvvvvvvvwwwwwwwwwwxxxxxxxxxxyyyyyyyyyyzzzzzzzzzz.txt'

    Which path is longer than 260 bytes, even if the file DO exists in that path.

    But Get-ChildItem WITHOUT -LiteralPath works well with that long-path file.

    $PSVersionTable

    Name Value


    PSVersion 5.1.17763.134
    PSEdition Desktop
    PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
    BuildVersion 10.0.17763.134
    CLRVersion 4.0.30319.42000
    WSManStackVersion 3.0
    PSRemotingProtocolVersion 2.3
    SerializationVersion 1.1.0.1

    5 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 →
  11. RequiredModules statement in Module Manifests should allow for Verbose:$false to be included

    Currently module imports initiated via the RequiredModules statement in a Module Manifest do not allow for verbosity preference.

    This results in a lot of additional noise for end users.
    For example. If a DSC Resource module requires other modules, and imports them via RequiredModules in the Module Manifest then the following happens:

    If an end-user is attempting to troubleshoot their DSC configuration they will utilize

    Start-DscConfiguration -UseExisting -Verbose -Force

    The results will be a verbose line for every cmdlet imported/exported from every included module. Which is A LOT of noise surrounding the verbose messages actually relevant to the end user.

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

    We’ll send you updates on this idea

    0 comments  ·  PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
  12. Bug: New-VirtualDiskClone not working

    The example is not working:
    New-VirtualDiskClone -VirtualDiskFriendlyName archive -FriendlyName archive2019 -TargetStoragePoolName "sof-pool"
    will return the following error: A parameter cannot be found that matches parameter name 'TargetVirtualDiskName'

    If there is any update or error I made please join the conversation an:
    https://social.technet.microsoft.com/Forums/windows/en-US/8de02e3f-41d0-42bc-b72d-9f1a785160c3/newvirtualdiskclone-not-working?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  ·  Documentation  ·  Flag idea as inappropriate…  ·  Admin →
  13. Set-DfsrConnectionSchedule doesn't change a replication partner of a group to use custom settings

    Set-DfsrConnectionSchedule doesn't change a replication partner of a group to use custom settings. I've even waited a day and it didn't change it.

    1 vote
    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. Windows Insider Build 18945 - Windows PowerShell is looking in One Drive for the PowerShell Profile

    I don't know why Windows PowerShell is looking for the PowerShell Profile.ps1 file in the Users OneDrive folder.

    This is not normal behavior!

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  15. PowerShell tabs

    Having the ability to open new PowerShell windows in tabs would be very useful.

    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  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  16. Set-ADAccountPassword -WhatIf parameter does not work.

    WhatIf is apparently ignored on the Set-ADAccountPassword cmdlet. This bit me really good ********** yesterday and today. It's a big problem when we can't depend on WhatIf working.

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  17. Is anyone here aware of any tools that can help with automated naming conventions validation?

    Is anyone here aware of any tools that can help with automated naming conventions validation?

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
  18. Hi - I'm having trouble with the Wait-Job cmdlet on PowerShell Core for Linux. I have a Job created with Start-Job, which I wait for with:

    I'm having trouble with the Wait-Job cmdlet on PowerShell Core for Linux. I have a Job created with Start-Job, which I wait for with:

    Wait-Job $job -Timeout 30

    Which should timeout after 30-seconds. However, the command consistently hangs for 2-minutes before it completes. Am I doing something wrong, and if not, could this bug be fixed? I'm running PowerShell 6.2.0 on Ubuntu 16.04.6 LTS.

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
  19. Bug: The first time New-NetLbfoTeam is used by Desired State Configuration it creates a misnamed interface

    The first time New-NetLbfoTeam is used by Desired State Configuration it creates a misnamed interface.

    This is on Server 2019 Build 17763.557 with the following updates applied:

    KB4483452
    KB4470788
    KB4503308
    KB4504369
    KB4503327

    Powershell shows:
    Name Value


    PSVersion 5.1.17763.503

    PSEdition Desktop

    PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}

    BuildVersion 10.0.17763.503

    CLRVersion 4.0.30319.42000

    WSManStackVersion 3.0

    PSRemotingProtocolVersion 2.3

    SerializationVersion 1.1.0.1

    For example:

    New-NetLbfoTeam -Name "Team1" -TeamMembers "NIC1" -TeamNicName "Team1" -LoadBalancingAlgorithm Dynamic -TeamingMode SwitchIndependent -Confirm:$False

    Will create an interface called "Ethernet" (Visible through Get-NetAdapter).

    If you delete the team and recreate in the same DSC, it'll work correctly.

    i.e. this works and creates an interface called…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Desired State Configuration (DSC)  ·  Flag idea as inappropriate…  ·  Admin →
  20. Change the default for $ErrorActionReport to "stop"

    I'm kind of new to PowerShell, but I've been scripting with Bash, Perl, Python, etc... for years. Today, when writing a quick try/catch in Powershell, the catch would never run. After much searching, I came to learn that the default action in PowerShell is to ignore a catch with $ErrorActionReport = "Continue" (the default value). Is there a reason that the default is like that? I would think the vast majority of scripts using try/catch would want to actually run the catch, so why is the default "Continue" and not "stop"?

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    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