Saturday, January 11, 2014

Customizing your PowerShell window colors

The information about the settings for your PowerShell's shell colors are stored in the object model at:
System.Management.Automation.Internal.Host.InternalHost and at

under the PrivateData and RawUI Properties

you can see the various settings by typing

$host.PrivateData and pressing enter

PS C:\Users\Stacy> $host.PrivateData

ErrorForegroundColor    : Red
ErrorBackgroundColor    : Black
WarningForegroundColor  : Yellow
WarningBackgroundColor  : Black
DebugForegroundColor    : Yellow
DebugBackgroundColor    : Black
VerboseForegroundColor  : Yellow
VerboseBackgroundColor  : Black
ProgressForegroundColor : Yellow
ProgressBackgroundColor : DarkCyan

Or by typing $host.UI.RawUI

ForegroundColor:             DarkYellow
BackgroundColor:            Black
CursorPosition:                 0,70
WindowPosition :             0,21
CursorSize:                       25
BufferSize:                        120,3000
WindowSize:                     120,50
MaxWindowSize:              120,84
MaxPhysicalWindowSize: 274,84
KeyAvailable:                    False
WindowTitle :                    Windows PowerShell

Now if you don't care for the red error text and would rather see it in green, type this

(get-host).PrivateData.ErrorForegroundColor = 'Green'

You also could have used Get-Host alias $host, like this:

$host.PrivateData.ErrorForegroundColor = 'Green'

Either way, powershell will just prompt back to normal, it will seem like nothing happened.  You can verify that it worked by typing this

$host.PrivateData.ErrorForegroundColor = Green

without the single quotes and including Green.

It will result in an error, the error text will be Green with a black Error background color.

If you want to see information about the User Interface

$host.UI.RawUI | gm

If you wanted to change the background color of your current shell to black:

$host.ui.rawUi.backgroundcolor = 'Black'

press enter


press enter

If you want your shell to always open up with a black background, you could create a folder in your my documents folder and name this new folder, WindowsPowerShell.  Then create a .ps1 file and include these two lines of code:

$host.ui.rawUi.backgroundcolor = 'Black'

This channel, by Don Jones, on YouTube has really, quick and easy PowerShell tutorials on the above information and more:

No comments:

Post a Comment

Thanks for commenting, if you have a question and want a reply, please post it on TechNet forums and reference this blog, or navigate to and post it there, all of these blog posts and more are on my SharePoint Papa site.

Popular Posts