How can you reset the colors for Windows PowerShell if they become corrupted after running a program? How can you reset the colors for Windows PowerShell if they become corrupted after running a program? powershell powershell

How can you reset the colors for Windows PowerShell if they become corrupted after running a program?


As a one-time operation just run this:

> [Console]::ResetColor()

From the docs: (emphasis added)

The foreground and background colors are restored to the colors that existed when the current process began.


I have this problem with MSBuild especially when I ctrl+C a build. This is what I put in my profile.ps1 file:

$OrigBgColor = $host.ui.rawui.BackgroundColor$OrigFgColor = $host.ui.rawui.ForegroundColor# MSBUILD has a nasty habit of leaving the foreground color red# if you Ctrl+C while it is outputting errors.function Reset-Colors {    $host.ui.rawui.BackgroundColor = $OrigBgColor    $host.ui.rawui.ForegroundColor = $OrigFgColor}

Then I just invoke Reset-Colors when MSBuild has messed them up.


First create a profile in PowerShell if you do not have one already:

test-path $profilenew-item -path $profile -itemtype file -forcenotepad $profile

Second, put this code in the file:

function prompt {  [Console]::ResetColor()}

Third, check if PowerShell will allow you to run scripts.

Get-ExecutionPolicy

If this says Restricted then run the following AS Administrator (please be sure you understand the security implications):

Set-ExecutionPolicy RemoteSigned

Open up a new PowerShell prompt and you should be able run node or other commands without any color issues.