Console output appears out of order in PS v5

This topic contains 3 replies, has 3 voices, and was last updated by  Arnoud Jansveld 1 year, 11 months ago.

  • Author
  • #45105

    Arnoud Jansveld

    Has anyone else seen output display out of order in PowerShell 5?

    C:\Users> Write-Host "Before"; Get-Service e* | select Status, Name, DisplayName; Write-Host "After"
     Status Name        DisplayName
     ------ ----        -----------
    Stopped EapHost     Extensible Authentication Protocol
    Running EFS         Encrypting File System (EFS)
    Running eventlog    Windows Event Log
    Running EventSystem COM+ Event System

    We noticed this after we upgraded to WMF5. It isn't causing any functional problems per se, but it can definitely confuse some people; scripts that uses Write-Host, Write-Verbose etc. to track the flow of the code could produce some surprising results.

    I created a UserVoice bug report with more details (please upvote if you think this needs attention): Bug: Console output appears out of order

  • #45109

    Neil Kronberg

    Try Write-Output instead. Write-Host writes directly to the screen which could cause it to appear before a command that writes to the pipeline (Get-Service), even though it's technically entered after that command.

  • #45111

    Don Jones

    Or, "Never use Write-Host." There are also downsides to putting extraneous stuff into the pipeline, as it can confuse the formatting subsystem.

  • #45120

    Arnoud Jansveld

    Agreed on not using Write-Host, so let's substitute Write-Verbose – same issue.

    The UserVoice post has more details (including some info added by Tim Curwick about timing changes).

You must be logged in to reply to this topic.