Powershell как изменить фон

Если при работе в командной строке вы случайно допустите опечатку, скажем, вместо «r» в конце команды dir напечатаете «e», интерпретатор сообщит об ошибке, но ничем иным кроме как текстовым содержимым это сообщение не будет отличаться.

Если при работе в командной строке вы случайно допустите опечатку, скажем, вместо «r» в конце команды dir напечатаете «e», интерпретатор сообщит об ошибке, но ничем иным кроме как текстовым содержимым это сообщение не будет отличаться. Не так бывает в консоли PowerShell. Ошибки в ней подсвечиваются красным цветом на чёрном фоне и всё это на тёмно-синем окружении основного фона консоли.

Не очень приятное сочетание цветов, не правда ли?

PowerShell

Если вы тоже так считаете, почему бы их не изменить, сделать так, чтобы они гармонировали друг с другом? Начнём с того, что в PowerShell, как и в стандартной командной строке, цвет текста и основного фона можно менять. Кликните правой кнопкой мыши по заголовку окна консоли и выберите в меню «Свойства». В открывшемся окошке переключитесь на вкладку «Цвета» и подберите сочетание цветов для фона и текста, которое с вашей точки зрения является наиболее гармоничным.

Цвета

Только вот текст ошибок по-прежнему будет выводиться красным цветом на том же чёрном фоне. Как изменить его? Очень просто. Используемые в PowerShell цвета хранятся в объекте PrivateData. Чтобы их просмотреть, содержимое этого объекта необходимо записать в переменную, а затем вывести её на экран. Вот так:

$col=(Get-Host).PrivateData
$col

PrivateData

За цвета сообщений об ошибках отвечают параметры ErrorForegroundColor и ErrorBackgroundColor. Как видим, по умолчанию первый имеет значение Red (красный), а второй значение Black (чёрный). Давайте заменим их.

$col.ErrorBackgroundColor = «Yellow»
$col.ErrorForegroundColor = «Blue»

Готово, теперь можете попробовать намерено выполнить какой-нибудь командлет с ошибкой.

Командлет с ошибкой

Вы увидите, что цвет текста ошибки и окружающий его фон изменились. При желании можете поэкспериментировать и с другими свойствами. Например, WarningForegroundColor и WarningBackgroundColor отвечают за цвета предупреждений, а DebugForegroundColor и DebugBackgroundColor за сведения об отладке.

Да, чтобы не забыть, все доступные цвета выводятся командой [System.Enum]::GetNames([System.ConsoleColor]).

System.Enum

Способ, как видите, рабочий, но при этом следует помнить, что при завершении сессии созданная вами переменная будет удалена, а вместе с нею к значениям по умолчанию будут приведены свойства цветов. Чтобы сохранить настройки, вам нужно будет добавить их в свой пользовательский профиль. А что такое профиль PowerShell и для чего он нужен, мы поговорим в следующий раз.

Загрузка…

  • Question

  • I’d like to set the background color of the PowerShell console window.

    The only code examples I’ve found so far do change the text background color, which looks very untidy when mixed with the (arbitrary) PowerShell console background window.

    Is there a way to set/reset the PowerShell console’s background color in code?

    Your help is appreciated!


    Vote here for a
    Microsoft Connect feedback channel on Windows — and win a better Windows!

    Vote here for a consistent
    keyboard shortcut support in Visual Studio and other Microsoft products!


Answers

  • $Host.UI.RawUI.BackgroundColor
    =
    ($bckgrnd
    =
    ‘DarkBlue’)
    $Host.UI.RawUI.ForegroundColor
    =
    ‘White’
    $Host.PrivateData.ErrorForegroundColor
    =
    ‘Red’
    $Host.PrivateData.ErrorBackgroundColor
    =
    $bckgrnd
    $Host.PrivateData.WarningForegroundColor
    =
    ‘Magenta’
    $Host.PrivateData.WarningBackgroundColor
    =
    $bckgrnd
    $Host.PrivateData.DebugForegroundColor
    =
    ‘Yellow’
    $Host.PrivateData.DebugBackgroundColor
    =
    $bckgrnd
    $Host.PrivateData.VerboseForegroundColor
    =
    ‘Green’
    $Host.PrivateData.VerboseBackgroundColor
    =
    $bckgrnd
    $Host.PrivateData.ProgressForegroundColor
    =
    ‘Cyan’
    $Host.PrivateData.ProgressBackgroundColor
    =
    $bckgrnd
    Clear-Host

    • Marked as answer by

      Sunday, September 16, 2012 3:18 PM

    • Unmarked as answer by
      BetterToday
      Sunday, September 16, 2012 3:18 PM
    • Marked as answer by
      BetterToday
      Sunday, March 1, 2015 8:31 PM

  • No, those properties are not available in thePowerShell console, which I thought you were asking for. The ISE’s ConsolePane is not a
    true console host, it imitates one, and they do not share settings, as a matter of fact, you cannot run PoerShell from the ISE; see what this has
    $psUnsupportedConsoleApplications

    What is your goal? Perhaps
    this old post by Lee Holmes gives you a better idea of the whys and how to.

    • Marked as answer by
      BetterToday
      Sunday, September 16, 2012 4:40 PM

  • This powershell function mimics the
    cmd line call, color b0

    function color ($bc,$fc) {
    $a = (Get-Host).UI.RawUI
    $a.BackgroundColor = $bc
    $a.ForegroundColor = $fc ; cls}

    color «cyan» «black»

    Powershell color names are:

    Black White
    Gray DarkGray
    Red DarkRed
    Blue DarkBlue
    Green DarkGreen
    Yellow DarkYellow
    Cyan DarkCyan
    Magenta DarkMagenta

    • Marked as answer by
      BetterToday
      Sunday, March 1, 2015 8:31 PM
    • Edited by
      pollaris
      Wednesday, March 4, 2015 5:05 PM
      more complete answer

  • Click the corner, go to properties.  Go to Colors tab.  Set the Screen Background RGB colors.  Click ok.  Default is something like «sapphire».

    • Edited by
      JS2010
      Friday, December 15, 2017 4:26 PM
    • Marked as answer by
      BetterToday
      Tuesday, October 22, 2019 11:47 PM

Консоль Windows PowerShell предоставляет удобную среду для управления командами PowerShell, а также для создания файлов сценариев, с которыми можно работать в дальнейшем. При этом вы можете настроить консоль в соответствии с собственными требованиями, отвечающими вашему индивидуальному стилю

. Например, вам захочется увеличить размер буфера или поменять шрифт и цвет фона. Для такой настройки в PowerShell предусмотрено несколько довольно простых методов. Вы можете установить свойства консоли непосредственно из командного окна, выполнять команды PowerShell для изменения этих установок или добавить сценарии к своему профилю PowerShell, чтобы установки автоматически применялись при запуске.

Еще можно внести изменения в реестр в процессе настройки консоли PowerShell, однако подробное описание этого подхода выходит за рамки данной статьи. Помните, что вносить изменения в реестр – это не самый гибкий и легкий способ настройки консоли PowerShell. К тому же такой подход потребует от вас большой осторожности.

Настройка свойств консоли PowerShell

При первом запуске PowerShell внешний вид консоли определяется настройками свойств по умолчанию или параметрами, которые установлены «горячей клавишей» и проходят как аргументы к исполняемому файлу PowerShell. Например, когда вы запускаете PowerShell, дважды щелкая на файле powershell.exe, он открывается с установками свойств по умолчанию. То же касается и запуска PowerShell «горячей клавишей», которую вы создали для исполняемого файла или запуска PowerShell из командной строки Windows. Вы увидите маленькое окно командного процессора с черным фоном и серым шрифтом, как показано на экране 1.

Окно PowerShell при запуске файла powershell.exe
Экран 1. Окно PowerShell при запуске файла powershell.exe

Если вы запускаете PowerShell из меню «Пуск», то увидите иную картину. В этом случае окно консоли больше, с голубым фоном и серым шрифтом, как показано на экране 2. Отличие обусловлено тем, что процесс установки PowerShell создает пункты меню «Пуск» с параметрами, необходимыми для изменения окружения консоли.

Окно PowerShell при запуске из меню
Экран 2. Окно PowerShell при запуске из меню

Независимо от того, как вы запускаете PowerShell, вы можете изменить внешний вид консоли через настройки свойств. Для доступа к ним щелкните на значке PowerShell в верхнем левом углу окна консоли, а затем на Properties, чтобы открыть диалоговое окно «Свойства».

Диалоговое окно Properties («Свойства») включает четыре вкладки: Options («Параметры»), Font («Шрифт»), Layout («Расположение») и Colors («Цвета»). Каждая из них содержит настройки, которые в случае необходимости можно изменить. На экране 3 показана вкладка Options. Здесь вы можете настроить размер курсора и процедуру запоминания команд. Также предусмотрено два режима редактирования: QuickEdit Mode и Insert Mode. Режим QuickEdit Mode позволяет копировать и выполнять вставку команд в консоли PowerShell с помощью мыши. Режим Insert Mode позволяет вставить новый текст в строку вместо его перезаписи.

Окно свойств PowerShell, вкладка Options
Экран 3. Окно свойств PowerShell, вкладка Options

На экране 4 вы видите вкладку Font, содержащую параметры, которые можно применить к шрифту в консоли PowerShell. Хотя их немного, у вас все же есть несколько вариантов, чтобы выбрать размер и стиль.

Окно свойств PowerShell, вкладка Font
Экран 4. Окно свойств PowerShell, вкладка Font

Вкладка Layout позволяет выбрать размер буфера, размер окна и его расположение, как показано на экране 5. Размер буфера устанавливает ширину (количество символов) и высоту (количество строк) вашего буфера. Размер буфера может быть такой же, как размер окна, и больше него, но он не может быть меньше. Многие администраторы считают, что увеличивать размер буфера, особенно высоту – это удобно. Размер окна определяет ширину и высоту актуального окна консоли. Опять же, оно не может быть больше размера буфера. Область расположения окна указывает, где будет располагаться окно консоли на вашем «рабочем столе», нужно только задать позицию левого верхнего угла окна или позволить сделать это системе.

Вкладка Layout
Экран 5. Вкладка Layout

На экране 6 показана вкладка Colors, где вы можете выбрать цвета текста и фона. Для этого можно прибегнуть к самому простому способу – выбрать элемент (например, текст на экране, Screen Text), а затем щелкнуть на цвете в панели цветов. Если вам известно заданное значение в схеме Red, Green, Blue (RGB) для определенного цвета, вы можете ввести его, но помните, что это повлияет и на другие элементы того же цвета, в результате чего могут получиться довольно неожиданные эффекты. Вы можете заранее просмотреть сделанные изменения в окне предварительного просмотра, и увидеть, как то или иное изменение повлияло на вид консоли.

Вкладка Colors
Экран 6. Вкладка Colors

После того, как вы задали разные свойства, щелкните OK, чтобы закрыть диалоговое окно Properties. Все изменения применяются немедленно. На экране 7 показано, как выглядит консоль PowerShell после того, как вы ее расширили, поменяли цвет фона на белый, а текст сделали черным.

Измененное окно PowerShell
Экран 7. Измененное окно PowerShell

Ваши изменения сохранятся, пока вы перезапускаете PowerShell из места первоначального запуска. К примеру, если вы запускаете PowerShell из меню «Пуск», измените настройки свойств и перезапустите PowerShell из меню «Пуск», и ваши изменения сохранятся. Однако при запуске PowerShell «горячей клавишей», созданной для исполняемого файла, ваши изменения никак не воспроизведутся. Чтобы ваши изменения сохранялись независимо от способа запуска PowerShell, следует предпринять другие шаги, и в первую очередь изучить, как написать сценарий настройки параметров.

Сценарии настройки консоли

PowerShell – это прежде всего среда написания сценариев. Хотя о PowerShell зачастую говорят как об интерактивной консоли управления, в основном это инструмент для создания и этапа исполнения сценариев, даже если они взаимодействуют с другими системами. С помощью PowerShell можно написать любой сценарий, включая настройки, влияющие на консоль PowerShell. Возможность управлять параметрами посредством сценариев обеспечивает легкий способ применения этих настроек к большому количеству экземпляров консоли PowerShell, независимо от того, находятся они на одном компьютере или на разных. Вы можете сохранить свои настройки в файле сценария и выполнить его, когда настройки нужно будет применить. А лучше сделать так: сохранить настройки в файле (подробнее об этом будет рассказано в следующем разделе), для того чтобы они применялись в любое время, когда вы открываете PowerShell, причем не важно, используете вы исполняемый файл или «горячую клавишу» в меню «Пуск». Создание сценариев обеспечит доступ к настройкам, недоступным через свойства консоли, например к настройкам цвета предупреждающих сообщений.

Для работы со сценариями в PowerShell необходимо базовое понимание того, как обрабатываются объекты в PowerShell. Объекты формируют основу для большей части сценариев, которые вы создаете в PowerShell, даже если это незаметно на первый взгляд. Объекты обеспечивают структуру для представления данных в PowerShell. Структура состоит из свойств, методов и других элементов, к которым у вас есть доступ во время сессии PowerShell.

Например, когда выполняется команда Get-Host, PowerShell возвращает объект, содержащий подробную информацию об окружении PowerShell, в частности имя, версию и информацию, касающуюся настроек оболочки. Один из элементов объекта Get-Host – это свойство графического интерфейса UI, особый тип свойства, связанный с собственным объектом, производным от класса Microsoft. NET Framework. Объект графического интерфейса в свою очередь включает свойство RawUI, обеспечивающее доступ к специфическим свойствам консоли.

Работая с объектами PowerShell, лучше всего назначать их переменной, чтобы можно было легко получить доступ к элементам объекта. PowerShell предоставляет встроенную переменную —$host—для доступа Get-Host. Это означает, что вы используете переменную $host для доступа к свойствам UI и RawUI.

Свойство RawUI – это особый тип свойств, связанных с собственным объектом, как и со свойством UI. Свойства консоли доступны через объект RawUI. Давайте на примере рассмотрим, как это работает. Следующая команда создает переменную под именем $console и назначает экземпляр объекта RawUI переменной:

$console = $host.UI.RawUI

Отметим, что объект RawUI доступен с указанием переменной $host, затем с указанием свойства UI и с последующим указанием свойства RawUI. Если присвоить команду $host.UI.RawUI переменной $console, переменная создается как тип объекта RawUI, предоставляющий доступ к свойствам консоли, чтобы вы могли их конфигурировать.

Например, следующие команды устанавливают свойство ForegroundColor (то есть текст) и свойство BackgroundColor объекта RawUI:

$console.ForegroundColor = «black»
$console.BackgroundColor = «white»

Как мы видим, необходимо только задать переменную $console с последующим именем свойства. Следом идет знак равенства (=) и новый цвет, заключенный в двойные кавычки. В данном случае задается черный цвет для текста и белый – для фона.

Когда вы выполняли эти команды, то наверняка заметили, что изменения сразу же были применены к консоли, так что окно стало выглядеть довольно странно, поскольку только самые последние строки отражают изменения в цвете текста и фона. Самый простой способ оформить ваш экран по своему вкусу, это выполнить следующую команду, чтобы очистить экран и начать с чистой строки:

Clear-Host

Теперь давайте взглянем на другое свойство RawUI — BufferSize. Как следует из названия, оно позволяет установить ширину и высоту буфера. Однако это одно из особых свойств, связанных с его собственным объектом, а значит, лучший подход – задать переменную для хранения объекта. Теперь у вас есть доступ к свойствам из этой переменной, как видно из примера:

$buffer = $console.BufferSize
$buffer.Width = 130
$buffer.Height = 2000
$console.BufferSize = $buffer

Сначала вы создаете переменную the $buffer для хранения объекта BufferSize. Затем вы используете эту переменную для установки свойств Width («ширина») и Height («высота»), аналогично тому, как до этого были установлены цвета текста и фона. Тем не менее, вы должны выполнить еще один шаг, а именно присвоить значения переменной $buffer фактическому свойству BufferSize объекта RawUI.

То же справедливо и для установки размера самого окна, как видно из сценария:

$size = $console.WindowSize
$size.Width = 130
$size.Height = 50
$console.WindowSize = $size

В данном случае в первую очередь вы создаете переменную под названием $size для хранения объекта, связанного со свойством WindowSize. Затем вы устанавливаете свойства Width и Height, точно так же, как и для объекта BufferSize. В заключение вы присваиваете значение переменной $size свойству WindowSize объекта RawUI. Обратите внимание, что, устанавливая размер окна, его можно сделать больше буфера (как было сказано ранее), но он не может быть больше размера, поддерживаемого вашей системой. Если вы получаете сообщение об ошибке, что ширина или высота окна не может быть больше указанного размера, настройте ваш код.

Объект RawUI содержит не все свойства, которые можно установить. Объект Get-Host также поддерживает свойство PrivateData, связанное с объектом. Объект PrivateData включает ряд свойств, относящихся к цветам шрифта и фона, применяемых для ответов консоли, например в сообщениях об ошибке или предупреждающих сообщениях.

Чтобы упростить вызов этих свойств, вы можете присвоить свойство PrivateData переменной, а затем вызвать переменную, как показано в сценарии:

$colors = $host.PrivateData
$colors.VerboseForegroundColor = «white»
$colors.VerboseBackgroundColor = «blue»
$colors.WarningForegroundColor = «yellow»
$colors.WarningBackgroundColor = «darkgreen»
$colors.ErrorForegroundColor = «white»
$colors.ErrorBackgroundColor = «red»

Сначала вы создаете переменную под именем $colors для хранения объекта PrivateData. Затем вы используете переменную для доступа к нескольким свойствам объекта, чтобы определить их цвета. В основном такой подход используется для установки свойств ForegroundColor и BackgroundColor объекта RawUI. Вы просто определяете значения вместо присваивания переменной $colors свойству PrivateData, как делали в случае с BufferSize и WindowSize.

Определив все свойства, снова выполните команду Clear-Host:

Clear-Host

Ваш экран теперь будет выглядеть так, как показано на экране 7. Теперь можно протестировать новый формат, выполнив ряд команд. Следующие команды создают несколько типов сообщений, которые будут отображены в цветах, заданных вами ранее:

Write-Output «This is a test message.»
Write-Verbose «This is a verbose message.» -Verbose
Write-Warning «This is a warning message.»
Write-Error «This is an error message.»

В целом используемые здесь команды не требуют пояснений. Команда Write-Output выводит стандартные сообщения на фоне и в шрифте по умолчанию. Остальные три команды создают сообщения, тип которых отражен в их названиях. На экране 8 показано, как выглядит консоль после создания тестовых сообщений.

Изменение настроек цвета стандартных сообщений
Экран 8. Изменение настроек цвета стандартных сообщений

Обратите внимание, что в первом сообщении используется черный текст на белом фоне, а другие сообщения отражают цвета, заданные для свойств, связанных с объектом PrivateData.

Добавление сценария настройки консоли в файл настроек

Возможность создания сценариев настроек консоли упрощает применение настроек в любое время, когда вам нужно. Вы можете сохранить их в файле сценария и вызвать файл, когда это необходимо. Или же можно вырезать и вставить сценарий в консоли и запускать команды этим способом. В любом случае вам необходимо иметь доступ к своему файлу сценария в любое время, чтобы применить настройки к консоли. Удобнее всего сохранить сценарий в одном из файлов настроек PowerShell.

PowerShell поддерживает четыре типа файлов настроек и выполняет их при запуске в определенном порядке. Однако подробное рассмотрение файлов настроек PowerShell выходит за рамки данной статьи. Итак, давайте создадим файл, относящий к текущему пользователю.

Чтобы узнать, где должен располагаться файл, вы можете применить встроенную переменную $profile для возвращения пути и имени, используемого для файла. Для этого просто запустите команду:

$profile

Переменная возвращает полное имя файла, например C:UsersAdministratorDocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1. Тем не менее, основываясь лишь на том, что переменная $profile указывает на файл, нельзя сделать вывод о существовании файла. Поэтому следующим шагом будет запуск команды:

Test-Path $profile

Команда Test-Path проверяет наличие файла. Если он существует, команда возвращает True; если нет, возвращается False. В последнем случае вам нужно выполнить следующую команду, прежде чем вы предпримите какие-либо другие действия:

New-Item -path $profile -type file -force

Команда New-Item создает файл на основе аргумента, переданного в параметре -path, в данном случае это переменная $profile. Параметр -type указывает, что создаваемый элемент — не что иное, как файл (как и определено ключевым словом «файл»). Параметр -force предписывает команде создать файл.

После того, как файл создан, вы можете повторить команду Test-Path и убедиться, что o она возвращает True. Готовый файл можно редактировать с помощью команды:

notepad $profile

Данная команда открывает пустой файл в Notepad. Затем вы можете добавить любой сценарий конфигурации. Добавив код для настройки, рассмотренный нами ранее, вы получите файл, который будет выглядеть, как на экране 9.

Файл с настройками окна консоли
Экран 9. Файл с настройками окна консоли

Однако учтите, что сценарий включает в себя команду:

Set-Location C:

Эта команда всего лишь предписывает PowerShell установить корневую папку в C:. Вы можете указать свою папку. Можно также задать «горячую клавишу» для быстрого перехода к корневой папке или определить корневую папку во время сессии PowerShell. Однако ее добавление к вашему файлу настроек помогает сохранить все настройки в одном месте. Кроме того, можно включить дополнительные команды в файл, например определить переменные, которые вы захотите использовать в каждой сессии.

Когда вы убедитесь, что ваш файл содержит все необходимое, просто сохраните все установки и закройте Notepad. Затем вы должны перезапустить PowerShell для применения настроек. Вы можете перезапустить PowerShell из любого местоположения. Тот же самый файл настроек будет применяться в каждом случае. Фактически вы даже можете сохранить свой файл в другой папке, так что сможете применить настройки к другим экземплярам PowerShell, и при этом не имеет значения, на каком компьютере вы работаете. Этот подход также позволяет разделять общий файл с другими пользователями. Не забудьте проверить документацию PowerShell, которая содержит более подробную информацию о работе с файлами настроек.

Если вы еще не установили PowerShell для запуска файлов сценариев (содержащих файлы настроек), в первый раз перезапуская PowerShell, вы можете получить сообщение об ошибке (см. экран 10). По существу, это говорит о том, что ваши политики этапа исполнения не были правильно заданы для поддержки файлов сценария.

Ошибка при запуске файла с настройками
Экран 10. Ошибка при запуске файла с настройками

Для запуска сценария выполните команду:

Set-ExecutionPolicy RemoteSigned

Эта команда позволяет запускать локальные или удаленные сценарии, имеющие цифровую подпись надежного издателя. Помните, однако, что политика этапа исполнения регулирует возможность или невозможность исполнения сценариев на вашей системе. Неправильные настройки поставят под угрозу безопасность системы. Убедитесь, что вы внимательно прочитали информацию о политиках этапа исполнения в документации PowerShell, прежде чем вносить какие-либо изменения в систему.

Консоль для пользователя

PowerShell обеспечивает достаточную гибкость при настройке консоли. Вы можете установить свойства консоли, запускать сценарии для настройки параметров или изменять свой файл настроек, чтобы они применялись всякий раз при запуске PowerShell. Добавление соответствующего сценария в файл настроек даст вам наибольшую гибкость при наименьших затратах на техническое обслуживание в течение долгого времени. Файл настроек сохранит ваш сценарий, а значит, вам не придется повторно применять настройки всякий раз при запуске PowerShell. Такой подход обеспечивает больше возможностей, чем свойства консоли, и для вас не будет играть никакой роли, запускаете вы PowerShell из меню «Пуск» или откуда-то еще. Благодаря продуманной среде для написания сценариев, которую предусматривает PowerShell, вам ничто не мешает сделать консоль настолько удобной в работе, насколько это возможно.

  1. Introduction to Changing Colors in PowerShell
  2. Use the [System.Enum] Class in PowerShell
  3. Changing the Console Color in PowerShell

Changing Colors in PowerShell

This article will discuss how to change font colors, the background color of scripts, and the console window color using PowerShell.

Introduction to Changing Colors in PowerShell

These commands retrieve an object with information about the PowerShell console, the console host.

Command:

Output:

Name             : Windows PowerShell ISE Host
Version          : 5.1.22000.282
InstanceId       : 8cff2bea-868b-4d9e-b55a-06a3f4b8c20c
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-PH
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.Host.ISE.ISEOptions
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

The PrivateData property has all the color properties we are looking for.

Command:

Output:

ErrorForegroundColor                      : #FFFF9494
ErrorBackgroundColor                      : #00FFFFFF
WarningForegroundColor                    : #FFFF8C00
WarningBackgroundColor                    : #00FFFFFF
VerboseForegroundColor                    : #FF00FFFF
VerboseBackgroundColor                    : #00FFFFFF
DebugForegroundColor                      : #FF00FFFF
DebugBackgroundColor                      : #00FFFFFF
ConsolePaneBackgroundColor                : #FF012456
ConsolePaneTextBackgroundColor            : #FF012456
ConsolePaneForegroundColor                : #FFF5F5F5
ScriptPaneBackgroundColor                 : #FFFFFFFF
ScriptPaneForegroundColor                 : #FF000000

The colors are set for the Warnings, Errors, Debug, Verbose, and Progress streams inside the $host.PrivateData object. Try changing one of these values and seeing if your console also changes colors.

Command:

$host.PrivateData.ErrorBackgroundColor = "White"

The error background default color "black" will change to "white".

changed error background color

To query for all the console colors in PowerShell, we run the command below.

Command:

[System.Enum]::GetValues('ConsoleColor')

Output:

Black
DarkBlue
DarkGreen
DarkCyan
DarkRed
DarkMagenta
DarkYellow
Gray
DarkGray
Blue
Green
Cyan
Red
Magenta
Yellow
White

The displayed output on the console is plain white text (if default colors have not been changed). Do the following command to display the console colors as their respective colors.

Command:

[System.Enum]::GetValues('ConsoleColor') |
ForEach-Object { Write-Host $_ -ForegroundColor $_ }

Output:

Displaying color values with font colors using Write-Host

Suppose we wanted to see which color combinations would work and suit our preference. In that case, we can use the command below that will output all the possible foreground colors on all possible background colors.

Command:

$colors = [enum]::GetValues([System.ConsoleColor])
Foreach ($bgcolor in $colors){
    Foreach ($fgcolor in $colors) {
        Write-Host "$fgcolor|"  -ForegroundColor $fgcolor -BackgroundColor $bgcolor -NoNewLine
    }
    Write-Host " on $bgcolor"
}

Output:

Displaying all possible combinations of foreground and background console colors

Changing the Console Color in PowerShell

Changing the prominent console foreground and the background color is slightly different from our previous object. We may try the snippet below to change the text color and the console window of PowerShell.

Command:

$host.UI.RawUI.ForegroundColor = "DarkGreen"
$host.UI.RawUI.BackgroundColor = "Black"
cls

Output:

Changing the Console Color in PowerShell

Понравилась статья? Поделить с друзьями:
  • Powershell write error exception
  • Powershell try catch error message
  • Powershell throw error
  • Powershell suppress error output
  • Powershell on error resume next