Есть ли у Powershell какой-либо эквивалент .bashrc?

Есть ли у Powershell какой-либо эквивалент .bashrc?

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

решение1

Статьяупомянуто вкомментарий jehadобъясняет, что есть несколько мест, из которых PowerShell может загрузить профиль, что вам и нужно. Вероятно, вам нужен профиль для пользователя для обычной консоли PowerShell. Путь, по которому PowerShell будет проверять наличие этого файла, указан в переменной $profile. Вы можете создать этот файл и содержащий его каталог с помощью этой команды:

New-Item $profile -Type File -Force

Он создает файл с именем Microsoft.PowerShell_profile.ps1в папке с именем WindowsPowerShellв папке «Документы». Затем вы можете открыть его с помощью текстового редактора:

notepad $profile

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

Function Test-Elevated {
  $wid = [System.Security.Principal.WindowsIdentity]::GetCurrent()
  $prp = New-Object System.Security.Principal.WindowsPrincipal($wid)
  $adm = [System.Security.Principal.WindowsBuiltInRole]::Administrator
  $prp.IsInRole($adm)
}

Эту функцию можно использовать в обычном режиме PowerShell, но вы также можете использовать ее для запуска содержимого скрипта вашего профиля только при работе с повышенными привилегиями:

If (Test-Elevated) {
  echo "Be careful!"
} Else {
  echo "Eh, do whatever."
}

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

Связанный контент