РАЗДЕЛ
    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





Содержание