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. 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  ·  Documentation  ·  Flag idea as inappropriate…  ·  Admin →
  2. verify yeah all that stuff

    2 years I cramed tech school im locksmith security is security

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

    We’ll send you updates on this idea

    3 comments  ·  Documentation  ·  Flag idea as inappropriate…  ·  Admin →
  3. Bug with EXO V2 reconnect

    There is a bug with the way Exchange Online V2 (ExchangeOnlineManagement 1.0.1) reconnects. If I have an On-Prem connection, it disconnects my On-Prem connection and makes a 2nd EXO, leaving the Broken EXO behind.

    The On-Prem uses prefix "OP" for its cmdlets. When EXO times out ("state: broken"), and if I try to run an on-prem command (Get-OPMailbox), EXO somehow gets involved and disconnects my (perfectly fine) on-prem connection, then makes a 2nd EXO instead of refreshing the one it had (see screenshot).

    We do use MFA. I'm going back to PSSession and basic auth for O365 for now.

    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 Gallery  ·  Flag idea as inappropriate…  ·  Admin →
  4. OpenSsl fails on the second command in PowerShell

    When trying to execute two openssl commands one by one, the second one fails. I've created a repro on Azure Pipelines demonstrating 4 different cases, by name they are

    1) win2019 fails running:
    openssh help
    openssh help

    on Azure Pipelines hosted pool. This has the specs listed here - https://github.com/actions/virtual-environments/blob/7c96951971ca872b4f02469a3f945af20f517d2b/images/win/Windows2019-Readme.md

    2) default succeeded running:
    openssh help
    openssh help

    on my local box

    3) fromCmd fails running the following from the command prompt:
    powershell -command "openssl help | openssl help"

    4) fromPowerShellToCmd succeeds running the following from PowerShell:
    cmd /c "openssl help && openssl help"

    So basically the only failures happen…

    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. Make the verb 'Deploy' symmetrical by adding a new verb 'Undeploy'

    The verb Deploy was added, but strangely no verb Undeploy was added at the same time.

    In many operations the verb Undeploy is relevant, meaning to revert or undo the Deployment action.

    Other Verbs that are paired with a 'Un' version:
    - Block / Unblock
    - Install / Uninstall
    - Lock / Unlock
    - Protect / Unprotect
    - Publish / Unpublish
    - Register / Unregister

    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 →
  6. ConvertFrom-Json does not respect -ErrorAction parameter

    The following code should not result in the following error message:

    $value = ($exception.Message | ConvertFrom-Json -ErrorAction Ignore)

    Line |
    25 | … = ($exception.Message | ConvertFrom-Json -ErrorAction Ignore) …
    | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    | Conversion from JSON failed with error: Additional text
    | encountered after finished reading JSON content: C. Path '',
    | line 2, position 0.

    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 →
  7. BUG: Get-ScheduledTask returns NULL for Value of MultipleInstances

    If in the settings tab of the scheduled task it is set to "Stop the existing instance", Get-ScheduledTask returns NULL for the value of MultipleInstances. The other three possible values return a string.

    To test:
    Edit the properties of an existing scheduled task, or create a new one. On the Settings tab, change "If the task is already running, then the following rule applies" to the value "Stop the existing instance".

    Execute in PowerShell:
    $task = Get-ScheduledTask -TaskPath '\' -TaskName 'your task name'
    $task.settings.MultipleInstances.GetType()

    Expected behavior:
    $task.settings.MultipleInstances should be a [string]

    Actual behavior:
    $task.settings.MultipleInstances is null

    Note that the value…

    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 →
  8. JOIN-PATH should handle several child elements

    (JOIN-PATH A B C) fails: PositionalParameterNotFound
    It should return A\B\C

    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 →
  9. Add -ComputerName parameter to Start-Service cmdlet

    Currently to start a service on a remote computer, one needs to call Get-Service with its hostname as the -Computername argument and pipe it to Start-Service.

    If manipulating services on remote machines is possible, why can't it be done with a single cmdlet?

    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 →
  10. When I attempt to communicate with serial devices using PowerShell in Ubuntu 18, I get an “access denied” message when I try to open the por

    When I attempt to communicate with serial devices using PowerShell in Ubuntu 18, I get an “access denied” message when I try to open the port. I can create the port object with no problem:

    $port = new-object system.io.ports.serialport ttyACM0

    And I can verify the created port:

    Echo $port

    …yields all the specifics. But when I try to open the port so that I can begin reading or writing:

    $port.open()

    …access is denied. Is this a procedural error on my part, or a short-coming in the cross platform PowerShell itself? I’ve tried this with onboard serial ports as well as…

    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 →
  11. Write-Progress as Advanced Function

    Write-Progress has been discussed recently as adding overhead. What if we added capability to differentiate code:

    1) Not an advanced function: behaves like now
    2) Advanced function: adds a -Progress switch that will only do Write-Progress if it is passed.

    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 →
  12. Get-Date -UFormat %W incorrect

    >get-date

    Dienstag, 2. Juni 2020

    // So Tuesday, 2nd of June 2020 and should be Cal. week 23

    >get-date -uformat %W
    22

    Am I missing something? this doesn't seem right

    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 →
  13. Format-Volume does not work with -FileSystem NTFS

    Format-Volume seems to work with FAT, FAT32 and exFAT, but doesn't work with ntfs. For example:

    Format-Volume -DriveLetter D -FileSystem NTFS

    It always gives back an invalid parameter error. I have tried multiple USB drives, multiple computers, and running it with administrator privileges.

    I came across this when using MI, where the same function call does not work, so it's not really a problem with PowerShell but WMI/Microsoft Storage Management APIs.

    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  ·  WMI  ·  Flag idea as inappropriate…  ·  Admin →
  14. I ran command which was executable in cmd but not recognized in Powershell ISE.

    Command which is recognized in cmd but not in Powershell ISE.

    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 →
  15. Bug: Returning NoteProperty from Functions

    ```
    function TestObject(){
    $MyObject = (Get-Process | select Name) -as [pscustomobject]
    Add-Member -InputObject $MyObject -MemberType NoteProperty -Name "NP0" -Value "Ich bin ein NoteProperty"

    Add-Member -InputObject $MyObject -MemberType MemberSet -Name "SubSet"
    Add-Member -InputObject $MyObject.SubSet -MemberType NoteProperty -Name "NP1" -Value "Ich bin ein NoteProperty"
    Add-Member -InputObject $MyObject.SubSet -MemberType NoteProperty -Name "NP2" -Value "Ich bin ein NoteProperty"

    #This does not work
    #$MyObject

    #This does not work either
    #return $MyObject

    # This works
    Get-Variable -Name MyObject -ValueOnly
    }
    ```

    So basicly you create an object inside a function using a random cmdlet. After that you add NoteProperty members using Add-Member.
    Return that object…

    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 →
  16. Powershell reacts to Lithuanian 9 and 0 in a wrong way starting Windows 1809

    It's not an idea, it's a bug.

    Lithuanian keyboard is known to use the right Alt as AltGr.

    As a top keyboard row in the Lithuanian keyboard layout is Lithuanian characters, holding AltGr allows all the top row to become an English US keyboard again.

    This way, holding AltGr enables to type numbers: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0. But not in Powershell, that ships with Windows 1809. Be it Windows Server 2019 1809, or Windows 10 1809.

    Starting with this Powershell, typing AltGr+9 and AltGr+0 does nothing and this is wrong.

    Typing numbers in Powershell…

    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 →
  17. Sandboxing powershell.exe.config for different versions of PowerShell

    Windows PowerShell.exe supports a -Version command-line switch, which aligns the current PowerShell session to a particular version of PowerShell, e.g. powershell.exe -Version 2.0 will get you a PS shell which uses .NET 2.0 and PowerShell v2. This is still useful, because I still have to write scripts that work in older environments, even though I am running WinPS 5.1 myself.

    However, semi-recent Windows Updates have added configuration to powershell.exe.config (I think to support newer TLS ciphers), which are incompatible with powershell.exe -Version 2.0.

    The following simple code is a minimal test point:

    $wc = New-Object Net.WebClient
    
    $wc.DownloadString(&#39;<a rel="nofollow noreferrer"
    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 →
  18. Please update help for Format-List

    Please update help version of Format-List to PowerShell 5.1

    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  ·  Documentation  ·  Flag idea as inappropriate…  ·  Admin →
  19. gridview tabulation

    Group multiple gridview in one windows.A tabulation system to navigate between grids.

    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 →
  20. Get-DnsServerResourceRecord returns duplicate records when a subzone name matches the parent zone name.

    BUG: Get-DnsServerResourceRecord returns incorrect objects with the FQDN name in the hostname field if the parent zone contains a subzone with the same name.

    Reproduction:

    Setup:
    Create a DNS zone:

     testzone.fake.domain.zzz
    

    Create a sub zone:

     testzone.fake.domain.zzz 
    
    (subzone fqdn: testzone.fake.domain.zzz.testzone.fake.domain.zzz)

    Create an A record:

     Zone Name: 
    
    testzone.fake.domain.zzz (the parent zone)
    Record Name:
    testrecord
    Data:
    10.1.2.3

    Create an A record:

     Zone Name: 
    
    testzone.fake.domain.zzz.testzone.fake.domain.zzz (the subzone)
    Record Name:
    testrecord
    Data:
    10.3.2.1

    Test:
    Get-DnsServerResourceRecord will return these records:
    Item# HostName______________________________________________________ RecordData RecordType

    1 testrecord                                                     10.1.2.3   A
    
    2 &lt;various&gt; &lt;various&gt; &lt;various&gt;
    3 testzone.fake.domain.zzz 10.1.2.3 A
    4 testrecord.testzone.fake.domain.zzz.testzone.fake.domain.zzz 10.3.2.1 A
    5 &lt;various&gt;.testzone.fake.domain.zzz &lt;various&gt; &lt;various&gt;

    Item 1…

    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 →
  • Don't see your idea?

Feedback and Knowledge Base