РАЗДЕЛ
about_Profiles
КРАТКОЕ ОПИСАНИЕ
Содержит описание, как создавать и использовать профиль Windows
PowerShell.
ПОЛНОЕ ОПИСАНИЕ
Создав профиль Windows PowerShell, вы получаете возможность
настраивать окружение и добавлять специфичные для сеанса элементы
в каждый создаваемый сеанс.
Профиль Windows PowerShell - скрипт, который выполняется в момент
запуска Windows PowerShell. Можно использовать профиль в качестве
скрипта, выполняемого при входе в систему, для настройки окружения.
Можно добавлять команды, псевдонимы, функции, значения, оснастки,
модули и диски Windows PowerShell. Также можно добавлять в профиль
другие специфичные для сеанса элементы, тогда они будут доступны
в каждом сеансе и не будет необходимости их импортировать или
создавать заново.
Windows PowerShell поддерживает несколько профилей для
пользователей и ведущих программ. Однако PowerShell не создает профили.
В этом разделе описаны профили; также рассказано, как создавать
и обслуживать профили на компьютере.
Здесь объясняется, как использовать параметр NoProfile консоли
Windows PowerShell (PowerShell.exe) для запуска Windows
PowerShell без профиля. Кроме того, описан результат действия
политики выполнения Windows PowerShell применительно к профилям.
ФАЙЛЫ ПРОФИЛЕЙ
Windows PowerShell поддерживает несколько файлов профилей. Кроме
того, ведущие приложения Windows PowerShell могут поддерживать
собственные профили, специфичные для приложения.
Например, консоль Windows PowerShell поддерживает следующие файлы
основного профиля. Ниже они указаны в порядке приоритета. Первый
профиль имеет наивысший приоритет.
Описание Путь
----------- ----
Текущий пользователь, $Home\[My ]Documents\WindowsPowerShell\Profile.ps1
текущее ведущее приложение
Текущий пользователь, $Home\[My ]Documents\Profile.ps1
все ведущие приложения
Все пользователи, $PsHome\Microsoft.PowerShell_profile.ps1
текущее ведущее приложение
Все пользователи, все $PsHome\Profile.ps1
ведущие приложения
Пути к профилям могут включать следующие переменные:
- Переменная $PsHome, в которой хранится путь к каталогу
установки Windows PowerShell.
- Переменная $Home, в которой хранится путь к домашнему
каталогу текущего пользователя.
Кроме того, другие ведущие приложения Windows PowerShell могут
поддерживать собственные профили. Например, интегрированная среда
скриптов (ISE) Windows PowerShell поддерживает следующие
специфичные для ведущего приложения профили.
Описание Путь
----------- -----
Текущий пользователь, $Home\[My ]Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
текущее ведущее приложение
Все пользователи, $PsHome\Microsoft.PowerShellISE_profile.ps1
текущее ведущее приложение
В справке Windows PowerShell профиль "Текущий пользователь,
текущее ведущее приложение" наиболее часто называется "вашим
профилем Windows PowerShell".
ПЕРЕМЕННАЯ $PROFILE
Автоматическая переменная $Profile хранит путь к профилям Windows
PowerShell, доступным в рамках текущего сеанса.
Для просмотра пути к профилю следует отобразить значение
переменной $Profile. Можно также использовать переменную $Profile
в команде в качестве пути.
В переменной $Profile хранится путь к профилю "Текущий
пользователь, текущее ведущее приложение". Остальные профили
хранятся в свойствах-примечаниях переменной $profile.
Например, переменная $Profile в консоли Windows PowerShell имеет
следующие значения.
Name Описание
----------- -----------
$Profile Текущий пользователь,
текущее ведущее приложение
$Profile.CurrentUserCurrentHost Текущий пользователь,
текущее ведущее приложение
$Profile.CurrentUserAllHosts Текущий пользователь, все
ведущие приложения
$Profile.AllUsersCurrentHost Все пользователи, текущее
ведущее приложение
$Profile.AllUsersAllHosts Все пользователи, все
ведущие приложения
Поскольку значения переменной $Profile отличаются для разных
пользователей и для различных ведущих приложений, убедитесь, что
вы отображаете значения переменных профиля для каждого ведущего
приложения Windows PowerShell, которое используется.
Чтобы просмотреть текущие значения переменной $Profile, введите
следующее:
$profile | get-member -type noteproperty
Переменную $Profile можно использовать во множестве команд.
Например, следующая команда открывает профиль "Текущий
пользователь, текущее ведущее приложение" в приложении Блокнот:
notepad $profile
Следующая команда определяет, был ли на локальном компьютере
создан профиль "Все пользователи, все ведущие приложения":
test-path $profile.AllUsersAllHosts
СОЗДАНИЕ ПРОФИЛЯ
Для создания профиля Windows PowerShell используется следующий
формат команды:
if (!(test-path <имя_профиля>))
{new-item -type file -path <имя_профиля> -force}
Например, для создания профиля текущего пользователя в текущем
ведущем приложении Windows PowerShell используется следующая команда:
if (!(test-path $profile))
{new-item -type file -path $profile -force}
В этой команде инструкция If предотвращает перезапись
существующего профиля. Замените значение заполнителя
<путь_к_профилю> путем к файлу профиля, который требуется создать.
Примечание. Для создания профилей "Все пользователи" в Windows
Vista и более поздних версиях Windows необходимо запускать
Windows PowerShell командой "Запуск от имени администратора".
РЕДАКТИРОВАНИЕ ПРОФИЛЯ
Любой профиль Windows PowerShell можно открыть в текстовом
редакторе, например в программе Блокнот.
Чтобы открыть профиль текущего пользователя в текущем ведущем
приложении Windows PowerShell в программе Блокнот, необходимо
ввести команду:
notepad $profile
Чтобы открыть другие профили, необходимо указать имя профиля.
Например, чтобы открыть профиль для всех пользователей и всех
ведущих приложений, необходимо ввести команду:
notepad $profile.AllUsersAllHosts
Чтобы применить изменения, нужно сохранить файл профиля, а затем
перезапустить Windows PowerShell.
ВЫБОР ПРОФИЛЯ
При использовании нескольких ведущих приложений поместите
элементы, используемые во всех ведущих приложениях, в профиль
$Profile.CurrentUserAllHosts (текущий пользователь, все ведущие
приложения). Поместите элементы, специфичные для ведущего приложения,
например команды, задающие фоновый цвет ведущего приложения, в профиль
для данного ведущего приложения.
Администратору, настраивающему Windows PowerShell для многих
пользователей, нужно соблюдать следующие правила.
-- Хранить общие элементы в профиле $profile.AllUsersAllHosts
(все пользователи, все ведущие приложения).
-- Хранить элементы, специфичные для ведущего приложения в
профилях $profile.AllUsersCurrentHost (все пользователи,
текущее ведущее приложение).
-- Хранить элементы для определенных пользователей в
профилях, специфичных для пользователя.
Необходимо проверить документацию ведущего приложения, на случай
если в приложении работа с профилями Windows PowerShell реализована
специальным образом.
ИСПОЛЬЗОВАНИЕ ПРОФИЛЕЙ
Многие элементы, которые создаются в Windows PowerShell, и
большинство выполняемых пользователем команд действуют только в
пределах текущего сеанса. Когда сеанс завершается, элементы
уничтожаются.
Команды и элементы, специфичные для сеанса, включают в себя
переменные, привилегированные переменные, псевдонимы, функции,
команды (за исключением Set-ExecutionPolicy) и оснастки Windows
PowerShell, добавляемые к сеансу.
Для сохранения этих элементов и обеспечения их доступности в
будущих сеансах их нужно добавить в профиль Windows PowerShell.
Другое распространенное использование профилей - сохранение часто
используемых функций, псевдонимов и переменных. После сохранения
элементов в профиле их можно использовать во время любого сеанса,
к которому применен этот профиль, не создавая их заново.
С ЧЕГО НАЧАТЬ СОЗДАНИЕ ПРОФИЛЯ?
Когда вы впервые открываете файл профиля, он пуст. Однако его
можно заполнить переменными, псевдонимами и командами, которыми
вы часто пользуетесь.
Ниже приведено несколько советов, с чего начать.
-- Добавьте команду, облегчающую открытие профиля. Это особенно
полезно, если вы используете профиль, отличный от профиля
"Текущий пользователь, текущее ведущее приложение". Например,
добавьте следующую команду:
function pro {notepad $profile.CurrentUserAllHosts}
-- Добавьте функцию, открывающую справку Windows PowerShell в
виде скомпилированного файла справки HTML (.chm).
function Get-CHM
{
(invoke-item $env:windir\help\mui\0409\WindowsPowerShellHelp.chm)
}
Эта функция открывает английскую версию файла .chm. Однако вы
можете заменить код языка (0409) и открыть другую версию файла
.chm.
-- Добавьте функцию, перечисляющую псевдонимы какого-либо командлета.
function Get-CmdletAlias ($cmdletname)
{
get-alias | Where {$_.definition -like "*$cmdletname*"} | ft Definition, Name -auto
}
-- Добавьте команду Add-PsSnapin для добавления оснасток Windows PowerShell,
которыми вы пользуетесь.
-- Настройте консоль.
function Color-Console
{
$host.ui.rawui.backgroundcolor = "white"
$host.ui.rawui.foregroundcolor = "black"
$hosttime = (dir $pshome\powershell.exe).creationtime
$Host.UI.RawUI.WindowTitle = "Windows PowerShell $hostversion ($hosttime)"
clear-host
}
Color-console
-- Добавьте настроенное приглашение командной строки Windows
PowerShell, включающее имя компьютера и текущий путь.
function prompt
{
$env:computername + "\" + (get-location) + "> "
}
Дополнительные сведения о приглашении командной строки Windows
PowerShell см в разделе about_Prompts.
ПАРАМЕТР NOPROFILE
Для запуска Windows PowerShell без профиля используйте параметр
NoProfile программы PowerShell.exe, запускающей Windows PowerShell.
Для начала откройте программу, которая может запустить Windows
PowerShell, например Cmd.exe или саму программу Windows
PowerShell. Также можно использовать диалоговое окно Run в Windows.
Введите следующую команду:
powershell -noprofile
Чтобы вывести полный список параметров программы PowerShell.exe,
введите следующую команду:
powershell -?
ПРОФИЛИ И ПОЛИТИКА ВЫПОЛНЕНИЯ
Политика выполнения Windows PowerShell отчасти определяет, можно
ли выполнять скрипты и загружать файлы конфигурации, в том числе
профили. Политика выполнения по умолчанию - Restricted. Она
запрещает выполнение скриптов, в том числе профилей. При
использовании политики Restricted профиль не запускается и его
содержимое не применяется.
Команда Set-ExecutionPolicy задает и изменяет политику выполнения.
Это одна из немногих команд, которая распространяется на все сеансы
Windows PowerShell, так как значение сохраняется в реестре. Нет
необходимости задавать значение при открытии консоли и не нужно
сохранять команду Set-ExecutionPolicy в вашем профиле.
ПРОФИЛИ И УДАЛЕННЫЕ СЕАНСЫ
Профили Windows PowerShell не запускаются автоматически в
удаленных сеансах, поэтому команды, добавленные профилями,
отсутствуют в удаленном сеансе. Кроме того, автоматическая
переменная $profile не заполняется в удаленных сеансах.
Чтобы запустить профиль в сеансе, используйте командлет
Invoke-Command.
Например, следующая команда запускает профиль CurrentUserCurrentHo
st с локального компьютера в сеансе в $s.
invoke-command -session $s -filepath $profile
Следующая команда запускает профиль CurrentUserCurrentHost с
удаленного компьютера в сеансе в $s. Так как переменная $profile
не заполнена, команда использует явный путь к профилю.
invoke-command -session $s {invoke-expression
"$home\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
После выполнения этой команды все команды, добавляемые профилем в
сеанс, доступны в $s.
СМ. ТАКЖЕ
about_Automatic_Variables
about_Functions
about_Prompts
about_Execution_Policies
about_Signing
about_Remote
Set-ExecutionPolicy