Профиль PowerShell это по сути обычный PowerShell скрипт (PS1), который запускается вместе с PowerShell и чаще всего используется как логон-скрипт для настройки среды. В PowerShell профиль вы можете добавить собственные функции, команды, псевдонимы, импортировать необходимые PowerShell модули, задать переменные окружения, изменить внешний вид и настройки консоли PowerShell. Все элементы в профиле автоматически будут доступны в каждой новой PowerShell сессии.
В Windows PowerShell есть несколько путей для хранения профилей. В следующей таблице все пути перечислены в порядке приоритета (сначала идет профиль с наивысшим приоритетом):
Путь | Описание |
$PSHOMEProfile.ps1 | Все пользователи, все приложения (AllUsersAllHosts) |
$PSHOMEMicrosoft.PowerShell_profile.ps1 | Все пользователи, текущее приложение (AllUsersCurrentHost) |
$HomeDocumentsPowerShellProfile.ps1 | Текущий пользователь, все приложения (CurrentUserAllHosts) |
$HomeDocumentsPowerShellMicrosoft.PowerShell_profile.ps1 | Текущий пользователь, текущее приложения (CurrentUserCurrentHost) |
Если вы хотите выполнить настройку сессии PowerShell для всех пользователей компьютера, нужно использовать файл $PROFILE.AllUsersAllHosts
. Для настройки PowerShell профиля только для текущего пользователя, сохраняйте настройки в $PROFILE.CurrentUserCurrentHost
.
Чтобы найти свой PowerShell профиль, достаточно выполнить команду $Profile
. По умолчанию путь к PowerShell профилю пользователя выглядит так: C:UsersusernameDocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1
$Home
ссылается на каталог профиля текущего пользователя ( C:Usersusername ). $PsHome
– указывает на каталог установки PowerShell ( C:WindowsSystem32WindowsPowerShellv1.0 ). $PSHome
ссылается на C:Program FilesPowerShell7 . У PowerShell ISE есть собственные файлы профилей:
$PsHomeMicrosoft.PowerShellISE_profile.ps1 | Все пользователи |
$HomeDocumentsWindowsPowerShellMicrosoft.PowerShellISE_profile.ps1 | Текущий пользователь |
Свои файлы профилей есть и у Visual Studio Code ( при использовании в качестве редактора для PowerShell скриптов ):
$PSHOMEMicrosoft.VSCode_profile.ps1 | Все пользователи |
$HomeDocumentsPowerShellMicrosoft.VSCode_profile.ps1 | Текущий пользователь |
Все пути к профилям содержаться в переменные окружения $PROFILE.
$PROFILE | Get-Member -Type NoteProperty
Чтобы обратится к конкретному профилю (например, к профилю текущего пользователя):
$PROFILE.CurrentUserCurrentHost
Чтобы проверить, создан ли профиль текущего пользователя, выполните:
Test-Path -Path $PROFILE.CurrentUserCurrentHost
В данном примере файл профиля PowerShell для текущего пользователя не создан (False).
Чтобы создать файл PowerShell профиля, если он не существует, используйте такой скрипт:
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
Вы можете отредактировать с помощью любого текстового редактора. Например, вы можете отредактировать файл профиля с помощью:
notepad $profile
ise $profile.CurrentUserCurrentHost
code $profile.CurrentUserCurrentHost
Попробуем настроить наш PowerShell профиль. Настроим цвет, заголовок консоли (выведем версию PowerShell ), изменим каталог PowerShell по-умолчанию, выведем имя компьютера в строке PS:
function CustomizePSConsole {
$Host.ui.rawui.foregroundcolor = "cyan"
$hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)"
$Host.UI.RawUI.WindowTitle = "This is PowerShell $hostversion"
Set-Location 'C:PS'
Clear-Host
}
CustomizePSConsole
Выведем имя компьютера в строке PS:
function Prompt
{
$env:COMPUTERNAME + "|" + (Get-Location) + "> "
}
Можно, например, подключить сетевой диск:
New-PSDrive –Name “Tools” –PSProvider “FileSystem” –Root “\FS01Tools”
Если вы часто используете PowerShell для управления тенатом Azure или Microsoft 365, можно при каждом запуске консоли запрашивать, нужно ли сразу подключиться к облачному сервису. Следующий скрипт, если вы ответите Y, запросит ваш пароль и подключит вас к вашему тенанту Exchange Online :
$connectM365= Read-Host "Connect to Exchange Online? (Y/N)"
If ($connectM365 -eq "Y"){
$LiveCred = Get-Credential
Connect-ExchangeOnline –Credential $LiveCred
}
В конце профиля можно добавить строку Clear-Host
для очистки консоли. Сохраните файл профиля Microsoft.PowerShell_profile.ps1 и перезапустите консоль PowerShell. При следующем запуске все настройки из профиля автоматически применяться для вашей консоли и ее вид измениться.
Set-ExecutionPolicy Remotesigned
Если вы хотите, чтобы ваш профиль PowerShell применялся и к удаленным сессиям, используйте команду:
Invoke-Command -Session $s -FilePath $PROFILE
–NoProfile
при запуске PowerShell.exe
или pwsh.exe
. Если говорить о том, какие лучшие дистрибутивы Linux мы знаем, то этот список может быть…
Хотя Ubuntu и поставляется со встроенным обозревателем Firefox многие пользователи считают что это не самая…
Что такое Remmina? Remmina — это совершенно бесплатный и свободный клиент так называемого удаленного рабочего…
Как мы знаем, Ubuntu это самая популярная сборка из систем на базе ядра Linux. У…
Выбор ноутбука для каждого пользователя это довольно кропотливый процесс. Люди стараются подобрать ноутбук который будет…
Если вы решили ознакомиться с операционной системой Linux более детально и задались вопросом как установить…