Профиль Powershell. Персональные настройки.

Профиль Powershell. Настраиваем Powershell по своему хотению.

Многие из вас наверняка меняют некоторые настройки в системе для своего удобства и в соответствии со своими предпочтениями. Неплохо было бы иметь настроенный именно под вас инструмент, такой как Powershell.

Давайте посмотрим, как это можно сделать.

Я не буду подробно описывать настройки внешнего вида консоли, которые можно сделать, щелкнув правой кнопкой мыши на заголовке окна  Powershell. Там все довольно просто, только действуют эти настройки до перезапуска Powershell. Давайте лучше узнаем, как изменять настройки с помощью самого Powershell и как сделать так, чтобы при начале работы с ним, вы получали уже настроенный под ваши желания инструмент.

Итак, для сохранения пользовательских настроек предусмотрены профили Powershell — файлы сценариев с расширением .ps1, который выполняется при запуске консоли и выполняет все заданные настройки.

Профиль Powershell, создание.

Для создания профиля Powershell для текущего пользователя нужно сделать следующее:

if (!(Test-Path -Path $PROFILE ))
{ New-Item -Type File -Path $PROFILE -Force }

Для создания профиля для всех пользователей введите:

if (!(Test-Path -Path $PROFILE.AllUsersCurrentHost))
{ New-Item -Type File -Path $PROFILE.AllUsersCurrentHost -Force }

Команда Test-Path $PROFILE проверяет, создан или нет профиль Powershell. Если ее вывод возвращает $True, значит профиль создан, а если $False, то нет. Создать и отредактировать профиль можно также при помощи обычного блокнота, выполнив команду: Notepad.exe $PROFILE

Читайте также:  User must change password. Снимаем и ставим галку при помощи Powershell.

В профиле могут быть указаны настройки консоли, значения переменных, функции, команды для импорта модулей и т.д.

Например, если вы хотите изменить внешний вид консоли с обычного

профиль powershell

на какой-нибудь такой

профиль powershell

внесите в файл примерно следующее:

(Get-Host).UI.RawUI.ForegroundColor = «cyan»

(Get-Host).UI.RawUI.WindowTitle = «Ваше название»

$PSVersionTable

Изменения внешнего вида консоли производятся изменением значений (Get-Host).UI.RawUI   (введите эту строку в консоли и увидите список доступных изменений

профиль powershell

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

function My-Console {
$Host.ui.rawui.foregroundcolor = «cyan»
$hostversion=»$($Host.Version.Major)`.$($Host.Version.Minor)»
$Host.UI.RawUI.WindowTitle = «PowerShell $hostversion» 
Clear-Host
}

то при, вводе команды My-Console, вид окна изменится с обычного на такой:

профиль powershell

Таким образом можно поместить в файле нужные вам функции и переменные.

Введите желаемые настройки и сохраните изменения. Посмотреть содержимое профиля можно командой

type $PROFILE

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

Читайте также:  CMD. Управление пользователями в Windows.

Set-ExecutionPolicy с нужными параметрами.

(Подробнее о профилях https://docs.microsoft.com/ru-ru/powershell/scripting/components/ise/how-to-use-profiles-in-windows-powershell-ise?view=powershell-6)

Несколько слов о настройках профиля PowershellISE. 

Этот профиль называется Microsoft.PowerShellISE_profile.ps1, там нужно поместить настройки для ISE.

Например, для корректного отображения кириллицы в консоли Powershell ISE поместите в файл следующее:

Ipconfig | Out-Null
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding(«cp866»)

Также можно изменить, например внешний вид консоли, изменив нужные опции переменной $psISE. Посмотреть доступные опции можно, введя:

PS C:\WINDOWS\system32> $psISE.Options


SelectedScriptPaneState                   : Top
ShowDefaultSnippets                       : True
ShowToolBar                               : True
ShowOutlining                             : True
ShowLineNumbers                           : True
TokenColors                               : {[Attribute, #FF00BFFF], [Command, #FF0000FF], [CommandArgument, #FF8A2BE2], [CommandParameter, #FF000080]...}
ConsoleTokenColors                        : {[Attribute, #FFB0C4DE], [Command, #FFE0FFFF], [CommandArgument, #FFEE82EE], [CommandParameter, #FFFFE4B5]...}
XmlTokenColors                            : {[Comment, #FF006400], [CommentDelimiter, #FF008000], [ElementName, #FF8B0000], [MarkupExtension, #FFFF8C00]...}
DefaultOptions                            : Microsoft.PowerShell.Host.ISE.ISEOptions
FontSize                                  : 9
Zoom                                      : 100
FontName                                  : Lucida Console
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
ShowWarningForDuplicateFiles              : True
ShowWarningBeforeSavingOnRun              : True
UseLocalHelp                              : True
AutoSaveMinuteInterval                    : 2
MruCount                                  : 10
ShowIntellisenseInConsolePane             : True
ShowIntellisenseInScriptPane              : True
UseEnterToSelectInConsolePaneIntellisense : True
UseEnterToSelectInScriptPaneIntellisense  : True
IntellisenseTimeoutInSeconds              : 3

Например, команда для изменения размера шрифта будет выглядеть так:

$psISE.Options.FontSize =20

А изменение цвета шрифта в консоли ISE так:

$psISE.Options.ConsolePaneForegroundColor = «Cyan»

Посмотреть доступные цвета можно так: 

[Enum]::GetValues([ConsoleColor])

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

 

P.S.

Иногда необходимо запустить оснастку PowerShell без использования профилей.  Для этого используется параметр -NoProfile. Сделать это можно так:
PowerShell  -NoProfile

Поделиться ссылкой:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.