Author Posts

August 28, 2017 at 3:29 pm

Hello, I have been making basic scripts with Powershell for a while and have just started messing with a Powershell profile script. One thing I wanted was a teal-ish background, so I set the console's background to "DarkCyan".

$Host.UI.RawUI.BackgroundColor = "DarkCyan"

Problem is this is the same color that Intellisense will change any string (any input wrapped in single or double quotes) to by default, making it invisible as I type.

Note: Output colors are fine, I just want to change the foreground color for inputs (interactive console).

In ISE, I can go to Tools > Options and in the "Colors and Fonts" tab under Console Pane > Console Tokens > String, I can edit the color. This method only affects the ISE console and NOT* the actual shell console. Is there a way to do this (preferably via script)?


I have checked the following for methods\properties that might work, but haven't found anything:


Likewise, I have gone the GUI route within a shell console Right-click the top of window > Properties, but I can't find anything about Intellisense or strings.

I have searched this forum and the web in general, but haven't found anything regarding to what I am specifically looking for.

August 28, 2017 at 3:31 pm

The IntelliSense function is provided by the PSReadLine module; you should manage your color settings there (as in, rather than changing the colors in the console app itself. The console doesn't "know" that PSReadLine is running, so it can't mitigate any color problems.

August 28, 2017 at 4:49 pm

Correct me if I'm wrong, but PSReadLine requires PS 5+, right?

August 28, 2017 at 5:47 pm

Thanks, Don. That is exactly what I was looking for.