Как создать профиль PowerShell - шаг за шагом
Хотите извлечь больше из вашего PowerShell? Тогда убедитесь, что вы настроили свой профиль PowerShell, чтобы улучшить свою консоль PowerShell.
Профиль PowerShell — это скрипт, который запускается при открытии PowerShell. Он позволяет автоматически загружать скрипты или модули PowerShell, создавать псевдонимы для часто используемых командлетов и изменять внешний вид вашей консоли.
В этой статье мы рассмотрим различные местоположения профилей PowerShell, объясним, как создать профиль, и приведем несколько полезных примеров.
Место расположения профиля PowerShell
Что большинство людей не знают, так это то, что существуют разные профили. Вы можете создать профиль для консоли/терминала PowerShell и отдельный для PowerShell ISE. Но также возможно создать один профиль, который будет использоваться во всех местах.
Чтобы найти местоположение вашего профиля PowerShell, мы собираемся использовать PowerShell.
- Откройте PowerShell
- Введите $profile
$profile
#result:
C:\Users\rmens\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Переменная $profile возвращает профиль текущего пользователя в текущей программе (хосте). Но, как упоминалось, существуют разные профили. Если вы также много работаете в PowerShell ISE, то имеет больше смысла использовать профиль Текущий Пользователь - Все Хосты.
Заметка
Термин "Хост" здесь немного сбивает с толку. Под Хостом Microsoft в данном случае понимает программу PowerShell, такую как консоль PowerShell или редактор ISE.
| Описание | Путь | Команда для открытия |
|---|---|---|
| Текущий пользователь - Текущий хост | $Home\[Мои ]Документы\ PowerShell\Microsoft.PowerShell_profile.ps1 | $профиль |
| Текущий пользователь – Все хосты | $Домашний\[Мои ]Документы\ PowerShell\Профиль.ps1 | $профиль.ТекущийПользовательВсеХосты |
| Все пользователи – Текущий хост | $PSHOME\Microsoft.PowerShell_profile.ps1 | $profile.AllUsersCurrentHost |
| Все пользователи – Все хосты | $PSHOME\Profile.ps1 | $профиль.ВсеПользователиВсеХосты |
Чтобы создать конкретный профиль для PowerShell ISE, вам нужно запустить команду из самого PowerShell ISE.
Как создать свой профиль PowerShell
Использование профилей PowerShell может значительно упростить вашу повседневную работу. Теперь вам больше не нужно переходить в нужную папку, чтобы запустить скрипт, который вы часто используете. Или вы можете создать удобные псевдонимы для cmdlet, которые вы часто используете.
Первый шаг в создании собственного профиля — проверить, есть ли у вас уже профиль. Откройте PowerShell и введите:
test-path $profileЕсли это возвращает ложь, то сначала нужно создать профиль, введите:
New-Item -Path $profile -Type File -ForceВы можете использовать тот же метод для создания профиля всех хостов или всех пользователей, используя команду из таблицы выше.
Чтобы использовать профиль, вам нужно убедиться, что вы установили политику выполнения на "Удаленно подписано". В противном случае вы не сможете запустить сценарий при открытии PowerShell. Убедитесь, что вы запускаете PowerShell с повышенными правами (в режиме администратора), чтобы изменить политику выполнения:
Get-ExecutionPolicy
Set the ExecutionPolicy to RemoteSigned:
Set-ExecutionPolicy RemoteSignedОтредактируйте профиль PowerShell
Профиль теперь создан, что позволяет вам открыть и редактировать профиль PowerShell. Снова мы используем команду PowerShell для открытия файла профиля:
ise $profile
Это откроет профиль в PowerShell ISE, показывая совершенно пустой файл профиля. Имейте в виду, что чем больше вы добавляете в свой профиль, тем дольше может занять запуск PowerShell.
Примеры профиля PowerShell
Профиль - это скрипт PowerShell, поэтому мы можем писать практически любую функцию PowerShell в нем. Но в основном вы хотите сделать несколько вещей в вашем профиле:
- Стилизация вашей консоли PowerShell
- Установить местоположение по умолчанию
- Загрузите разные пути (папки) со скриптами
- Установить переменные по умолчанию
- Импортируйте модули
- Создать псевдонимы
Стилизация вашей консоли PowerShell
Вы можете настроить свою консоль PowerShell, изменив шрифт и цвет фона, а также заголовок окна, например. Лично я использую Windows Terminal и применяю к нему кастомизированную тему. Вы можете узнать больше о Windows Terminal в этой статье.
Style default PowerShell Console
$shell = $Host.UI.RawUI
$shell.WindowTitle= "PS"
$shell.BackgroundColor = "Black"
$shell.ForegroundColor = "White"
Load custom theme for Windows Terminal
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme LazyAdminУстановить местоположение по умолчанию
По умолчанию PowerShell начинает работу в вашей домашней папке $home. Но когда я работаю с PowerShell, чаще всего я хочу иметь быстрый доступ к папке со своими скриптами. Поэтому мы можем установить место по умолчанию для запуска PowerShell в:
Set Default location
Set-Location D:\SysAdmin\scriptsЗагрузите скрипты из разных местоположений
Чтобы быстро получить доступ к вашим скриптам, вы можете загрузить папки, содержащие скрипты, в путь вашей среды $env:path. Это позволяет вам иметь доступ ко всем вашим скриптам без необходимости менять директории каждый раз:
Load scripts from the following locations
$env:Path += ";D:\SysAdmin\scripts\PowerShellBasics"
$env:Path += ";D:\SysAdmin\scripts\Connectors"
$env:Path += ";D:\SysAdmin\scripts\Office365"Установить переменные по умолчанию
Еще один полезный совет — установить переменные по умолчанию в вашем профиле. Например, мне часто нужно подключаться к Office 365. Установив URL-адрес администратора SharePoint или мое UserPrincipalName в качестве переменной в профиле, я могу быстро подключаться к различным конечным точкам.
Это работает лучше всего в сочетании со скриптами соединений, которые вы можете найти здесь на моем GitHub.
Set default variables
$adminUPN = "a-d@lazydev.onmicrosoft.com"
$sharepointAdminUrl = "https://lazydev-admin.sharepoint.com"Импортируйте модули или скрипты
Большинство моих скриптов написаны как функция. Но для того, чтобы действительно использовать их как функцию, вам нужно создать из них модуль PowerShell. Эти файлы модулей необходимо разместить в папке модулей: $HOME\Documents\PowerShell\Modules.
Моя папка с модулями не подключена к моему репозиторию на GitHub, поэтому изменения, сделанные в скриптах, нужно копировать в папку модулей, что я всегда забываю.
На мой взгляд, более простой метод заключается в использовании псевдонима для ваших скриптов. Таким образом, вы можете вызывать свои скрипты как функции, без необходимости создавать из них модули:
Lazy way to use scripts as module
Set-Alias ConnectTo-SharePointAdmin ConnectTo-SharePointAdmin.ps1
Set-Alias ConnectTo-EXO ConnectTo-EXO.ps1
Set-Alias Get-MFAStatus MFAStatus.ps1
Set-Alias Get-MailboxSizeReport MailboxSizeReport.ps1
Set-Alias Get-OneDriveSizeReport OneDriveSizeReport.ps1Создайте псевдонимы для команд
Вы также можете создавать псевдонимы для команд, которые вы часто используете, например:
Create aliases for frequently used commands
Set-Alias im Import-Module
Set-Alias tn Test-NetConnectionПосле того как вы внесете все изменения, сохраните файл своего профиля и перезапустите консоль PowerShell.
Завершение
Хорошо настроенный профиль PowerShell действительно может сэкономить вам время при работе с PowerShell. Он дает вам прямой доступ к часто используемым скриптам, переменным и функциям.
Если у вас есть предложения или советы по профилю, пожалуйста, поделитесь ими ниже. Также, если у вас есть вопросы, просто оставьте комментарий ниже.
