List of all colors available for PowerShell?
Categories:
Unveiling PowerShell's Color Palette: A Comprehensive Guide

Explore the full spectrum of colors available in PowerShell, understand how to use them for enhanced readability, and customize your console experience.
PowerShell offers a rich set of colors that can significantly improve the readability and visual appeal of your console output. Beyond the default black and white, you can leverage a predefined palette to highlight important information, differentiate output types, or simply personalize your scripting environment. This article will guide you through the available colors, how to apply them, and best practices for effective color usage in PowerShell.
Understanding PowerShell's Standard Color Set
PowerShell, particularly versions 2.0 and 3.0, provides a standard set of 16 console colors. These colors are directly mapped to the System.ConsoleColor
enumeration in .NET, which PowerShell utilizes. They can be applied to both foreground (text) and background elements of your console. Knowing these fundamental colors is the first step to customizing your PowerShell experience.
graph TD A[System.ConsoleColor Enum] --> B(Black) A --> C(DarkBlue) A --> D(DarkGreen) A --> E(DarkCyan) A --> F(DarkRed) A --> G(DarkMagenta) A --> H(DarkYellow) A --> I(Gray) A --> J(DarkGray) A --> K(Blue) A --> L(Green) A --> M(Cyan) A --> N(Red) A --> O(Magenta) A --> P(Yellow) A --> Q(White)
The 16 standard colors available through the System.ConsoleColor
enumeration.
Get-Member -Static -InputObject ([System.ConsoleColor]) | Select-Object Name
# Output:
# Name
# ----
# Black
# DarkBlue
# DarkGreen
# DarkCyan
# DarkRed
# DarkMagenta
# DarkYellow
# Gray
# DarkGray
# Blue
# Green
# Cyan
# Red
# Magenta
# Yellow
# White
Listing all available System.ConsoleColor
enumeration members.
Applying Colors to Console Output
The primary cmdlet for applying colors to your console output is Write-Host
. This cmdlet allows you to specify both the foreground and background colors for the text it outputs. It's particularly useful for displaying messages, warnings, or errors with distinct visual cues. While Write-Host
is great for direct console output, remember that it doesn't send objects down the pipeline, making it less suitable for structured data processing.
Write-Host "This is a normal message." -ForegroundColor White
Write-Host "This is an informational message." -ForegroundColor Cyan
Write-Host "This is a warning!" -ForegroundColor Yellow -BackgroundColor DarkRed
Write-Host "This is an error!" -ForegroundColor Red -BackgroundColor Black
Write-Host "Success!" -ForegroundColor Green
Examples of using Write-Host
with different foreground and background colors.
Format-Table
or Format-List
with custom Format.ps1xml
files. This allows you to define color rules based on object properties.Customizing the PowerShell Console Profile
To make your color preferences persistent across PowerShell sessions, you can modify your PowerShell profile. The profile is a script that runs every time PowerShell starts. By setting default foreground and background colors within your profile, you ensure a consistent visual experience without needing to specify colors for every Write-Host
command.
# Check if a profile exists, if not, create one
if (-not (Test-Path $PROFILE)) {
New-Item -Path $PROFILE -ItemType File -Force
}
# Open the profile in Notepad (or your preferred editor)
notepad $PROFILE
# Add these lines to your profile to set default colors:
# $Host.UI.RawUI.ForegroundColor = 'Green'
# $Host.UI.RawUI.BackgroundColor = 'Black'
# Clear-Host # Optional: Clears the screen with new colors on startup
Steps to locate, create, and edit your PowerShell profile for persistent color settings.