Juho Lehto

My feedback

  1. 149 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    9 comments  ·  PowerShell » ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto commented  · 

    >When is this feature going to be released?
    Never. Windows PowerShell and Windows PowerShell ISE will no longer receive new features. The future of PowerShell is in the open-source version of PowerShell, meaning PowerShell version 6 and newer. There is no PowerShell ISE however.

    Please use Visual Studio Code and PowerShell extension instead, both are free.
    https://code.visualstudio.com/
    https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell

    Juho Lehto supported this idea  · 
  2. 2 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    survey  ·  2 comments  ·  PowerShell » PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto shared this idea  · 
  3. 1 vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PowerShell » ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto shared this idea  · 
  4. 56 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    4 comments  ·  PowerShell » ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto supported this idea  · 
  5. 172 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    7 comments  ·  PowerShell » PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto supported this idea  · 
  6. 12 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PowerShell » ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto shared this idea  · 
  7. 5 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  PowerShell » ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto commented  · 

    Even though original poster specifically uses the word "Untitled", which commonly refers to unsaved files. I believe he actually means PowerShell tabs, see File-menu and New PowerShell tab, or Ctrl + T.

    These tabs are named "PowerShell X" where X is a running number. You can rename these tabs as follows:
    $psISE.CurrentPowerShellTab.DisplayName = "Fancy tab name"

    But there is no support for this in the ISE user interface itself. You can actually achieve a lot through $psISE variable.

    Juho Lehto supported this idea  · 
  8. 10 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  PowerShell » Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto commented  · 

    And one more just to prove the point.

    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    $null | Out-Null
    }
    }).TotalMilliseconds

    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    [void]($null)
    }
    }).TotalMilliseconds

    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    $null = $null
    }
    }).TotalMilliseconds

    16.5597
    3.9302
    3.6214

    Juho Lehto supported this idea  · 
    Juho Lehto commented  · 

    I got curious about performance of PowerShell pipeline and output, so I performed a series of tests.

    $GetProcess = Get-Process

    # Batch 1 - Test 1
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    $GetProcess | Out-Null
    }
    }).TotalMilliseconds

    # Batch 1 - Test 2
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    [void]($GetProcess)
    }
    }).TotalMilliseconds

    # Batch 1 - Test 3
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    $null = $GetProcess
    }
    }).TotalMilliseconds

    # Batch 2 - Test 1
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    $GetProcess | Select-Object -Property ProcessName | Out-Null
    }
    }).TotalMilliseconds

    # Batch 2 - Test 2
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    [void]($GetProcess | Select-Object -Property ProcessName )
    }
    }).TotalMilliseconds

    # Batch 2 - Test 3
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    $null = $GetProcess | Select-Object -Property ProcessName
    }
    }).TotalMilliseconds

    # Batch 3 - Test 1
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    $GetProcess | Select-Object -Property Handles, NPM, PM, WS, VM, CPU, Id, SI, Name | Out-Null
    }
    }).TotalMilliseconds

    # Batch 3 - Test 2
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    [void]($GetProcess | Select-Object -Property Handles, NPM, PM, WS, VM, CPU, Id, SI, Name )
    }
    }).TotalMilliseconds

    # Batch 3 - Test 3
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    $null = $GetProcess | Select-Object -Property Handles, NPM, PM, WS, VM, CPU, Id, SI, Name
    }
    }).TotalMilliseconds

    # Batch 4 - Test 1
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    $GetProcess | Out-String | Out-Null
    }
    }).TotalMilliseconds

    # Batch 4 - Test 2
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    [void]($GetProcess | Out-String )
    }
    }).TotalMilliseconds

    # Batch 4 - Test 3
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    $null = $GetProcess | Out-String
    }
    }).TotalMilliseconds

    # Batch 5 - Test 1
    (Measure-Command {
    for ($i = 1; $i -lt 99; $i++)
    {
    $GetProcess | Out-File -FilePath D:\GetProcess.txt
    }
    }).TotalMilliseconds

    Results in order:
    49.2132
    1.3915
    0.9475
    384.2298
    329.779
    326.8669
    5526.1959
    5436.0147
    5446.1342
    13944.425
    13914.4013
    14234.5796
    14919.6084

    I believe this proves that the culprit is not Out-Null, but the PowerShell pipeline itself that is slow. I tried -Property * as well, but that takes way too long to complete.

    The last test I put as a comparison on how long it takes for Out-File to output $GetProcess into a file on an SSD.

  9. 32 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    4 comments  ·  PowerShell » PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto supported this idea  · 
  10. 54 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    8 comments  ·  PowerShell » PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
    survey  ·  Zachary Alexander responded

    Thank you for your input. Based on its current ranking compared to other feedback items and product schedule, work on this item is pending (and will be driven by) further customer input.

    Juho Lehto commented  · 

    I believe there is plenty of demand for more verbs, but the bottom line is that the PowerShell team simply cannot cater to all requirements. Which is why I would like to propose an alternative.

    Extend the PowerShell module manifest file to include support for custom verbs. Something like Verbs = @('Verb1', 'Verb2'). When importing a module with module manifest, Import-Module would not complain about non-standard verbs.

    The downside is that older versions of PowerShell wouldn't support this, but gotta start somewhere I suppose.

  11. 218 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    22 comments  ·  PowerShell » Documentation  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto supported this idea  · 
  12. 3 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  PowerShell » PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto supported this idea  · 
    Juho Lehto commented  · 

    I believe I've been encountering this bug or something very close to it.

    I have WMF 5.0 Production Preview and I've established remoting session to a server using CredSSP authentication. Then I run Get-ADUser cmdlet. Often I won't get back any output whatsoever from Get-ADUser when number of objects is significant.

    But then again, sometimes I can get back thousands of objects without any issues.

    Unreliability of this is really bugging me. Unfortunately at this time I do not know how well Invoke-Command works.

  13. 5 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  PowerShell » PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto supported this idea  · 
  14. 119 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    10 comments  ·  PowerShell » PowerShell Engine  ·  Flag idea as inappropriate…  ·  Admin →

    Hi everyone,

    With PowerShell 6.0, we’ve already begun updating our versioning system to be more descriptive. Right now, PSVersion returns 6.0.0-alpha as a System.Management.Automation.SemanticVersion object (with Major, Minor, Patch, and Label properties), and we’ve also added a GitCommitId property to PSVersionTable that matches perfectly with tags on GitHub: https://github.com/powershell/powershell/tags

    Still, we can definitely continue to improve the semantic version implementation. You can track (and contribute to!) the discussion on these improvements here: https://github.com/PowerShell/PowerShell/issues/2354

    Thanks,
    Joey

    Juho Lehto supported this idea  · 
  15. 5 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  PowerShell » ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto supported this idea  · 
  16. 14 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  PowerShell » Other PowerShell  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto supported this idea  · 
  17. 8 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  PowerShell » ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto supported this idea  · 
  18. 33 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    7 comments  ·  PowerShell » ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto supported this idea  · 
  19. 52 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    In Queue  ·  3 comments  ·  PowerShell » ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto supported this idea  · 
  20. 14 votes
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  PowerShell » ISE and tooling  ·  Flag idea as inappropriate…  ·  Admin →
    Juho Lehto supported this idea  · 
← Previous 1

Feedback and Knowledge Base