about_Execution_Policies

РАЗДЕЛ
    about_Execution_Policies

КРАТКОЕ ОПИСАНИЕ
    Описывает политики выполнения Windows PowerShell и способы 
    управления ими.

ПОЛНОЕ ОПИСАНИЕ
    Политики выполнения Windows PowerShell позволяют определять 
    условия, при которых среда Windows PowerShell загружает файлы 
    конфигурации и выполняет скрипты.

    Политику выполнения можно задать для локального компьютера, текущего 
    пользователя или конкретного сеанса. Для задания политик выполнения для 
    пользователей и компьютеров можно использовать параметры групповой 
    политики.

    Политики выполнения для локального компьютера и текущего пользователя 
    хранятся в реестре. Политики выполнения не требуется задавать в 
    профиле Windows PowerShell. Политика выполнения для конкретного 
    сеанса хранится только в памяти и теряется после закрытия сеанса.

    Политика выполнения не является механизмом обеспечения безопасности, 
    который ограничивает действия пользователей. Например, пользователи могут 
    обходить политику путем ввода содержимого скрипта в командной строке, если 
    выполнить скрипт не удается. Вместо этого политика выполнения помогает 
    пользователям задавать базовые правила и не позволяет непреднамеренно нарушать их.


 ПОЛИТИКИ ВЫПОЛНЕНИЯ WINDOWS POWERSHELL
 -------------------------------------

    Существуют следующие политики выполнения Windows PowerShell.

    Restricted - политика по умолчанию.

        Restricted
            - Политика выполнения по умолчанию.

            - Допускает отдельные команды, но скрипты выполнять нельзя. 

            - Препятствует выполнению всех файлов скриптов, включая файлы 
              форматирования и конфигурации (PS1XML), файлы скриптов модулей 
              (PSM1) и профили Windows PowerShell (PS1). 
    
        AllSigned
            - Выполнение скриптов разрешено.

            - Требует, чтобы все скрипты и файлы конфигурации были 
              подписаны надежным издателем, в том числе скрипты, 
              подготовленные на локальном компьютере.

            - Перед выполнением скриптов издателей, для которых еще не 
              определено, являются ли они надежными, выводятся 
              предупреждения.

            - Имеется риск выполнения неподписанных скриптов из 
              источников, отличных от Интернета, а также подписанных, но 
              вредоносных скриптов.
      
        RemoteSigned
            - Выполнение скриптов разрешено.

            - Требует наличия цифровой подписи надежного издателя у 
              скриптов и файлов конфигурации, загружаемых из 
              Интернета (включая электронную почту и программы мгновенного 
              обмена сообщениями).

            - Не требует наличия цифровых подписей у скриптов, выполняемых и 
              написанных на локальном компьютере (не загруженных из Интернета).

            - Имеется риск выполнения подписанных, но вредоносных 
              скриптов.

        Unrestricted
            - Могут выполняться неподписанные скрипты. (Имеется риск 
              выполнения вредоносных скриптов.)

            - Предупреждает пользователя перед выполнением скриптов и 
              файлов конфигурации, загруженных из Интернета. 

        Bypass
            - Ничего не блокируется, и никакие предупреждения и запросы не 
              появляются.

            - Эта политика выполнения предназначена для конфигураций, 
              в которых скрипт Windows PowerShell встроен в более крупное 
              приложение, или для конфигураций, в которых Windows PowerShell 
              является платформой для программы, у которой имеется собственная 
              модель обеспечения безопасности.

        Undefined
            - В текущей области не задана политика выполнения.

            - Если политика выполнения во всех областях имеет значение 
              Undefined, действует политика выполнения Restricted, которая 
              является политикой выполнения по умолчанию.


    Примечание. В системах, которые не отличают UNC-пути от путей в 
                Интернете, выполнение скриптов, которые задаются UNC-путями, 
                может быть запрещено, если включена политика выполнения RemoteSigned. 

 

 ОБЛАСТЬ ПОЛИТИКИ ВЫПОЛНЕНИЯ
 ---------------------------
    Можно задать политику выполнения, которая действует только в 
    конкретной области. 

    Допустимые значения параметра Scope - Process, CurrentUser и 
    LocalMachine. При задании политики выполнения по умолчанию 
    используется значение LocalMachine. 

    Значения Scope перечислены в порядке приоритета.

        - Process 
             Действие политики выполнения распространяется только на 
             текущий сеанс (текущий процесс Windows PowerShell). Политика 
             выполнения хранится в переменной среды $PSExecutionPolicyPreference. 
             Это значение удаляется, когда сеанс, в котором задана политика, 
             закрывается.

        - CurrentUser 
             Действие политики выполнения распространяется только на 
             текущего пользователя. Она хранится в разделе реестра 
             HKEY_CURRENT_USER. 

        - LocalMachine
             Действие политики выполнения распространяется на всех 
             пользователей текущего компьютера. Она хранится в 
             разделе реестра HKEY_LOCAL_MACHINE.

    Политика, имеющая более высокий приоритет, действует в текущем 
    сеансе даже в том случае, если на более низком уровне приоритета 
    была задана более строгая политика.

    Дополнительные сведения см. в описании командлета Set-ExecutionPolicy.



 ПОЛУЧЕНИЕ ПОЛИТИКИ ВЫПОЛНЕНИЯ
 ------------------------------
    Чтобы получить политику выполнения Windows PowerShell, которая 
    действует в текущем сеансе, используется командлет Get-ExecutionPo
    licy. 

    Следующая команда получает текущую политику выполнения:

    get-executionpolicy  


    Чтобы получить все политики выполнения, влияющие на текущий сеанс и 
    отобразить их в порядке приоритета, введите:

        get-executionpolicy -list

    Выходные данные будут выглядеть примерно следующим образом:

                  Scope    ExecutionPolicy
                  -----    ---------------
          MachinePolicy          Undefined
             UserPolicy          Undefined
                Process          Undefined
            CurrentUser       RemoteSigned
           LocalMachine          AllSigned
     
    В этом случае действует политика выполнения RemoteSigned, 
    поскольку политика выполнения текущего пользователя имеет приоритет по 
    сравнению с политикой выполнения для локального компьютера.   
    
    Чтобы получить политику выполнения для конкретной области, следует 
    использовать параметр Scope командлета Get-ExecutionPolicy. 

    Например, следующая команда получает политику выполнения для области 
    текущего пользователя.

        get-executionpolicy -scope CurrentUser   




 ИЗМЕНЕНИЕ ПОЛИТИКИ ВЫПОЛНЕНИЯ
 ------------------------------
    Чтобы изменить политику выполнения Windows PowerShell на 
    компьютере, следует использовать командлет Set-ExecutionPolicy. 

    Изменение вступает в силу немедленно; перезапускать оболочку Windows 
    PowerShell не требуется. 

    Если задать политику выполнения для локального компьютера (по 
    умолчанию) или текущего пользователя, изменение сохраняется в 
    реестре и остается в силе, пока политика не будет изменена снова.

    Если задать политику выполнения для текущего процесса, она не 
    сохраняется в реестре. Она сохраняется, пока текущий процесс и все его 
    дочерние процессы не будут закрыты. 

    
    Примечание. В Windows Vista и более поздних версиях Windows для 
                выполнения команд, которые изменяют политику выполнения 
                для локального компьютера (по умолчанию), запустите Windows 
                PowerShell командой "Запуск от имени администратора".
    

    Чтобы изменить политику выполнения, введите:
 
        Set-ExecutionPolicy <имя_политики>

    Пример: 

        Set-ExecutionPolicy RemoteSigned



    Чтобы задать политику выполнения в конкретной области, введите:

        Set-ExecutionPolicy <имя_политики> -scope <область>

    Пример: 

        Set-ExecutionPolicy RemoteSigned -scope CurrentUser


    Команда изменения политики выполнения может быть выполнена 
    успешно, но не изменить действующую политику выполнения.

    Например, команда, устанавливающая политику выполнения для локального 
    компьютера, может быть выполнена успешно, но она может быть переопределена 
    политикой выполнения для текущего пользователя.
    


 УДАЛЕНИЕ ПОЛИТИКИ ВЫПОЛНЕНИЯ
 ----------------------------
    Чтобы удалить политику выполнения для конкретной области, следует 
    задать для политики выполнения значение Undefined.

    Например, чтобы удалить политику выполнения для всех пользователей 
    локального компьютера, введите:

        set-executionpolicy Undefined

    Также можно ввести команду:

        set-executionpolicy Undefined -scope LocalMachine

    Если ни в одной из областей не задана ни одна политика 
    выполнения, будет действовать политика выполнения Restricted, которая 
    является политикой по умолчанию.  



 УСТАНОВКА ПОЛИТИКИ ВЫПОЛНЕНИЯ В POWERSHELL.EXE
 ----------------------------------------------
    С помощью параметра ExecutionPolicy программы PowerShell.exe 
    можно задать политику выполнения для нового сеанса Windows PowerShell.
    Действие политики распространяется только на текущий сеанс и его 
    дочерние сеансы.

    Чтобы задать политику выполнения для нового сеанса, запустите Windows 
    PowerShell в командной строке (например, Cmd.exe или Windows PowerShell), 
    а затем воспользуйтесь параметром ExecutionPolicy программы PowerShell.exe, 
    чтобы задать политику выполнения.

    Пример:

    powershell.exe -executionpolicy -allsigned
    
    
    Задаваемая политика выполнения не сохраняется в реестре.
    Вместо этого она сохранятся в переменной среды $PSExecutionPolicyP
    reference. Переменная удаляется, когда сеанс, в котором задана 
    политика, закрывается.
     
    На протяжении сеанса политика выполнения, которая задана для 
    сеанса, имеет приоритет по сравнению с политикой выполнения, 
    заданной в реестре для локального компьютера или текущего 
    пользователя. Однако она не имеет приоритета по сравнению с 
    политикой выполнения, заданной с помощью групповой политики 
    (см. ниже).
    
           

 УПРАВЛЕНИЕ ПОЛИТИКАМИ ВЫПОЛНЕНИЯ С ПОМОЩЬЮ ГРУППОВОЙ ПОЛИТИКИ
 -------------------------------------------------------------
    С помощью параметра групповой политики "Включить выполнение 
    скриптов" можно управлять политикой выполнения компьютеров в 
    организации. Этот параметр групповой политики переопределяет 
    политики выполнения, заданные в Windows PowerShell во всех областях. 

    Параметр политики "Включить выполнение скриптов" работает 
    следующим образом.
    
    -- Если отключить параметр "Включить выполнение скриптов", скрипты 
       выполняться не будут. Это эквивалентно применению политики выполнения 
       Restricted.

    -- Если включить параметр "Включить выполнение скриптов", можно 
       выбрать политику выполнения. Параметры групповой политики 
       эквивалентны следующим политикам выполнения.

        Групповая политика          Политика выполнения  
        ----------------------      -------------------
        Разрешить все скрипты.      Unrestricted

        Разрешить локальные         RemoteSigned 
        скрипты и удаленные 
        подписанные скрипты.  
              
        Разрешить только            AllSigned
        подписанные скрипты.          

     -- Если параметр "Включить выполнение скриптов" не задан, он не 
        действует. Действует политика выполнения, заданная в Windows 
        PowerShell.


    Файл PowerShellExecutionPolicy.adm добавляет политику "Включить 
    выполнение скриптов" в узлы "Конфигурация компьютера" и "Конфигурация 
    пользователя" редактора групповой политики по следующим путям.

        В Windows XP и Windows Server 2003:
        Административные шаблоны\Компоненты Windows\Windows PowerShell

        В Windows Vista и более поздних версиях Windows:
        Административные шаблоны\Классические административные 
        шаблоны\Компоненты Windows\Windows PowerShell

    Политики в узле "Конфигурация компьютера" имеют приоритет по 
    сравнению с политиками в узле "Конфигурация пользователя".

    Файл PowerShellExecutionPolicy.adm можно загрузить из Центра загрузки 
    Майкрософт. Дополнительные сведения см. в разделе "Административные 
    шаблоны для Windows PowerShell" по адресу 
    https://go.microsoft.com/fwlink/?LinkId=131786.
    

 ПРИОРИТЕТ ПОЛИТИК ВЫПОЛНЕНИЯ
 ----------------------------
    При определении действующей политики выполнения для сеанса среда 
    Windows PowerShell вычисляет политики выполнения на основании 
    следующего порядка приоритетов.

        - Групповая политика: конфигурация компьютера
        - Групповая политика: конфигурация пользователя
        - Политика выполнения: Process (или PowerShell.exe ExecutionPolicy) 
        - Политика выполнения: CurrentUser
        - Политика выполнения: LocalMachine  


 УПРАВЛЕНИЕ ПОДПИСАННЫМИ И НЕПОДПИСАННЫМИ СКРИПТАМИ
 --------------------------------------------------
    Если в Windows PowerShell установлена политика выполнения 
    RemoteSigned, среда Windows PowerShell не будет выполнять 
    неподписанные скрипты, загружаемые из Интернета (включая 
    электронную почту и программы мгновенного обмена сообщениями).
 
    Можно подписать скрипт или выполнить неподписанный скрипт без 
    изменения политики выполнения.

    Дополнительные сведения см. в разделе about_Signing.


СМ. ТАКЖЕ
    Get-ExecutionPolicy
    Set-ExecutionPolicy
    about_Signing
    "Административные шаблоны для Windows PowerShell" 
        (https://go.microsoft.com/fwlink/?LinkId=131786)