To continuously update the PowerShell title bar, and for example display the current date and time, you need a background thread that takes care of this. Without a background thread, your PowerShell would be busy all the time updating the title bar, thus unusable.
Here is a simple piece of code you can run to display a live clock in your title bar:
$code = { # submit the host process RawUI interface and the execution context param($RawUi) do { # compose the time and date display $time = Get-Date -Format 'HH:mm:ss dddd MMMM d' # compose the title bar text $title = "Current Time: $time" # output the information to the title bar of the host process $RawUI.WindowTitle = $title # wait a half second Start-Sleep -Milliseconds 500 } while ($true) } $ps = [PowerShell]::Create() $null = $ps.AddScript($code).AddArgument($host.UI.RawUI) $handle = $ps.BeginInvoke()
The crucial thing here is to pass over the $host.UI.RawUI object from your foreground PowerShell to your background thread code. Only then can your background thread access the title bar owned by your foreground PowerShell.