
У меня есть некоторые функции, которые я хотел бы загружать по умолчанию при открытии административной оболочки 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, чтобы предоставить вашей учетной записи пользователя только доступ на чтение, оставив при этом полный контроль администраторам. (Сначала необходимо отключить наследование.) После этого вы сможете редактировать скрипт только из повышенных программ.