Профиль Powershell. Настраиваем Powershell по своему хотению.
Многие из вас наверняка меняют некоторые настройки в системе для своего удобства и в соответствии со своими предпочтениями. Неплохо было бы иметь настроенный именно под вас инструмент, такой как Powershell.
Давайте посмотрим, как это можно сделать.
Я не буду подробно описывать настройки внешнего вида консоли, которые можно сделать, щелкнув правой кнопкой мыши на заголовке окна Powershell. Там все довольно просто, только действуют эти настройки до перезапуска Powershell. Давайте лучше узнаем, как изменять настройки с помощью самого Powershell и как сделать так, чтобы при начале работы с ним, вы получали уже настроенный под ваши желания инструмент.
Итак, для сохранения пользовательских настроек предусмотрены профили Powershell — файлы сценариев с расширением .ps1, которые выполняются при запуске консоли и применяют все заданные настройки.
Профиль Powershell, создание.
Для создания профиля Powershell для текущего пользователя нужно сделать следующее:
1 2 |
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force } |
Для создания профиля для всех пользователей введите:
1 2 |
if (!(Test-Path -Path $PROFILE.AllUsersCurrentHost)) { New-Item -Type File -Path $PROFILE.AllUsersCurrentHost -Force } |
Команда Test-Path $PROFILE проверяет, создан или нет профиль Powershell. Если ее вывод возвращает $True, значит профиль создан, а если $False, то нет. Создать и отредактировать профиль можно также при помощи обычного блокнота, выполнив команду: Notepad.exe $PROFILE
В профиле могут быть указаны настройки консоли, значения переменных, функции, команды для импорта модулей и т.д.
Например, если вы хотите изменить внешний вид консоли с обычного
на какой-нибудь такой
внесите в файл примерно следующее:
1 2 3 |
(Get-Host).UI.RawUI.ForegroundColor = "cyan" (Get-Host).UI.RawUI.WindowTitle = "Ваше название" $PSVersionTable |
Изменения внешнего вида консоли производятся изменением значений (Get-Host).UI.RawUI (введите эту строку в консоли и увидите список доступных изменений
Изменение внешнего вида(и не только) можно внести в профиль как функцию, проще говоря, создав свой командлет, который Powershell будет выполнять при вводе имени этой функции. Например, если поместить в файл профиля следующее:
1 2 3 4 5 |
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, вид окна изменится с обычного на такой:
Таким образом можно поместить в файле нужные вам функции и переменные.
Введите желаемые настройки и сохраните изменения. Посмотреть содержимое профиля можно командой
1 |
type $PROFILE |
Только при сохранении не забудьте сохранить файл с расширением .ps1, а не .txt. Вы в любое время можете изменить настройки вашего профиля, отредактировав нужный файл профиля(их несколько). Также разрешите запуск сценариев на компьютере(если еще не разрешен). Сделать это можно при помощи команды
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 поместите в файл следующее:
1 2 |
Ipconfig | Out-Null [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("cp866") |
Также можно изменить, например внешний вид консоли, изменив нужные опции переменной $psISE. Посмотреть доступные опции можно, введя:
1 |
$psISE.Options |
Например, команда для изменения размера шрифта будет выглядеть так:
1 |
$psISE.Options.FontSize =20 |
А изменение цвета шрифта в консоли ISE так:
1 |
$psISE.Options.ConsolePaneForegroundColor = "Cyan" |
Посмотреть доступные цвета можно так:
1 |
[Enum]::GetValues([ConsoleColor]) |
Black
DarkBlue
DarkGreen
DarkCyan
DarkRed
DarkMagenta
DarkYellow
Gray
DarkGray
Blue
Green
Cyan
Red
Magenta
Yellow
White
P.S.
Иногда необходимо запустить оснастку PowerShell без использования профилей. Для этого используется параметр -NoProfile. Сделать это можно так:
1 |
PowerShell -NoProfile |
На этом у меня всё по теме профиль Powershell. Узнать о том как получить владельца процесса с помощью Powershell.
Еще немного о Powershell