set executionpolicy remotesigned что делает

Windows PowerShell. Выполнение сценариев отключено в этой системе

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Если скрипт не соответствует этому условию, то выполнение сценариев PowerShell в системе запрещено. Это связано в первую очередь с тем, что в скрипте может находиться вредоносный код, который может нанести вред операционной системе.

PowerShell имеет несколько режимов выполнения, которые определяют, какой тип кода разрешается выполнять. Существует 5 различных режимов выполнения:

По умолчанию для PowerShell используется режим «Ограниченный». В этом режиме, PowerShell работает как интерактивная оболочка. Если вы ранее не настраивали PowerShell, то вместо работы скрипта вы увидите сообщение об ошибке, написанное красным шрифтом как на скриншоте ниже.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Самым безопасным способом решения этой проблемы является – изменение политики выполнения на неограниченную, запуск скрипта, и затем обратный возврат к ограниченной политике.

Для изменения политики выполнения на неограниченную, воспользуемся консолью PowerShell открытую с правами Администратора и выполним следующую команду:

После запуска команды вам будет предложено подтвердить изменение политики выполнения. Ответим Y ( Да ).

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Теперь можно запустить скрипт. Однако, вы подвергаете систему серьезному риску, так что по окончании работы скрипта, не забудьте вернуть политику выполнения назад в ограниченный режим. Сделать это можно с помощью следующей команды:

После запуска команды вам будет предложено подтвердить изменение политики выполнения. Ответим Y ( Да )

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

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

Блокируется выполнение любых скриптов. Значение по умолчанию.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Разрешено выполнение скриптов, имеющих цифровую подпись.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Разрешено выполнение любых скриптов. При запуске не подписанного скрипта, который был загружен из Интернета, программа может потребовать подтверждение.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

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

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Теперь при выполнении команд не нужно подтверждать производимые изменения.

Источник

Настройка политики запуска скриптов (Execution Policy) PowerShell

По-умолчанию настройки Windows запрещают запуск скриптов PowerShell. Это необходимо для предотвращения запуска вредоносного кода на PowerShell. Настройки политик запуска PowerShell скриптов определяются в Execution Policy. В этой статье мы рассмотрим доступные политики запуска PS скриптов, как изменить Execution Policy и настроить политики использования PowerShell скриптов на компьютерах в домене.

Выполнение PowerShell скриптов запрещено для данной системы

При попытке выполнить PowerShell скрипт (файл с расширением PS1) на чистой Windows 10, появляется ошибка:

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Текущее значение политики выполнения скриптов PowerShell на компьютере можно получить командой:

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Доступны следующие значения PowerShell Execution Policy:

Как разрешить запуск скриптов PowerShell с помощью Execution Policy?

Чтобы изменить текущее значение политики запуска PowerShell скриптов, используется командлет Set-ExecutionPolicy.

Например, разрешим запуск локальных скриптов:

Подтвердите изменение политики запуска PS1 скриптов, нажав Y или A.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Чтобы запрос не появлялся, можно использовать параметр Force.

Set-ExecutionPolicy RemoteSigned –Force

Если вы установили значение политики PowerShell Execution Policy в Unrestricted, то при запуске удаленных скриптов из сетевых каталогов по UNC пути, скачанных из интернета файлов, все равно будет появляться предупреждение:

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Также следует различать различные области действия политик выполнения скриптов PowerShell (scopes):

Область применения политики можно указать с помощью параметр Scope командлета Set-ExecutionPolicy. Например:

Проверим текущие настройки ExecutionPolicy для всех областей:

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Значение политики выполнения, которые вы задаете с помощью командлета Set-ExecutionPolicy для областей CurrentUser и LocalMachine, хранятся в реестре. Например, выполните командлет:

Откройте ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell и проверьте значение REG_SZ параметра ExecutionPolicy. Оно изменилось на Restricted (допустимые значения параметра Restricted, AllSigned, RemoteSigned, Bypass, Unrestricted и Undefined).

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Аналогичные настройки для области CurrentUser находятся в разделе реестра пользователя HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell.

Отметим, что чаще всего в корпоративной среде используется ExecutionPolicy со значением AllSigned на уровне LocalMachine. Это обеспечивает максимальный баланс между безопасностью и удобством. Для личного пользования на компьютере можно использовать RemoteSigned. Ну а Bypass политику лучше использовать только для запуска отдельных задач (например для запуска скриптов через GPO или заданий планировщика).

Настройка PowerShell Execution Policy с помощью групповых политик

Вы можете настроить политику выполнения PowerShel скриптов на серверах или компьютерах домена с помощью групповых политик.

После настройки политики выполнения через GPO вы не сможете изменить настройки политики выполнения скриптов вручную. При попытке изменить настройки Execution Policy на компьютере, на который применяется такая GPO, появится ошибка:

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Способы обхода политики PowerShell Execution

Есть несколько трюков, которые могут помочь вам, когда нужно запустить на компьютере PowerShell скрипт, не изменяя настройки политики выполнения. Например, я хочу запустить простой PS1 скрипт, который поверяет, что запущен с правами администратора.

Можно с помощью Get-Content получить содержимое скрипта и перенаправить его в стандартныq поток ввода консоли PS.

Источник

Set-Execution Policy

Sets the PowerShell execution policies for Windows computers.

Syntax

Description

The Set-ExecutionPolicy cmdlet changes PowerShell execution policies for Windows computers. For more information, see about_Execution_Policies.

Beginning in PowerShell 6.0 for non-Windows computers, the default execution policy is Unrestricted and can’t be changed. The Set-ExecutionPolicy cmdlet is available, but PowerShell displays a console message that it’s not supported.

An execution policy is part of the PowerShell security strategy. Execution policies determine whether you can load configuration files, such as your PowerShell profile, or run scripts. And, whether scripts must be digitally signed before they are run.

The Set-ExecutionPolicy cmdlet’s default scope is LocalMachine, which affects everyone who uses the computer. To change the execution policy for LocalMachine, start PowerShell with Run as Administrator.

Examples

Example 1: Set an execution policy

This example shows how to set the execution policy for the local computer.

The Set-ExecutionPolicy cmdlet uses the ExecutionPolicy parameter to specify the RemoteSigned policy. The Scope parameter specifies the default scope value, LocalMachine. To view the execution policy settings, use the Get-ExecutionPolicy cmdlet with the List parameter.

Example 2: Set an execution policy that conflicts with a Group Policy

This command attempts to set the LocalMachine scope’s execution policy to Restricted. LocalMachine is more restrictive, but isn’t the effective policy because it conflicts with a Group Policy. The Restricted policy is written to the registry hive HKEY_LOCAL_MACHINE.

The Set-ExecutionPolicy cmdlet uses the ExecutionPolicy parameter to specify the Restricted policy. The Scope parameter specifies the default scope value, LocalMachine. The Get-ChildItem cmdlet uses the Path parameter with the HKLM provider to specify registry location.

Example 3: Apply the execution policy from a remote computer to a local computer

This command gets the execution policy object from a remote computer and sets the policy on the local computer. Get-ExecutionPolicy sends a Microsoft.PowerShell.ExecutionPolicy object down the pipeline. Set-ExecutionPolicy accepts pipeline input and doesn’t require the ExecutionPolicy parameter.

Example 4: Set the scope for an execution policy

This example shows how to set an execution policy for a specified scope, CurrentUser. The CurrentUser scope only affects the user who sets this scope.

Set-ExecutionPolicy uses the ExecutionPolicy parameter to specify the AllSigned policy. The Scope parameter specifies the CurrentUser. To view the execution policy settings, use the Get-ExecutionPolicy cmdlet with the List parameter.

The effective execution policy for the user becomes AllSigned.

Example 5: Remove the execution policy for the current user

This example shows how use the Undefined execution policy to remove an execution policy for a specified scope.

Set-ExecutionPolicy uses the ExecutionPolicy parameter to specify the Undefined policy. The Scope parameter specifies the CurrentUser. To view the execution policy settings, use the Get-ExecutionPolicy cmdlet with the List parameter.

Example 6: Set the execution policy for the current PowerShell session

The Set-ExecutionPolicy uses the ExecutionPolicy parameter to specify the AllSigned policy. The Scope parameter specifies the value Process. To view the execution policy settings, use the Get-ExecutionPolicy cmdlet with the List parameter.

Example 7: Unblock a script to run it without changing the execution policy

This example shows how the RemoteSigned execution policy prevents you from running unsigned scripts.

A best practice is to read the script’s code and verify it’s safe before using the Unblock-File cmdlet. The Unblock-File cmdlet unblocks scripts so they can run, but doesn’t change the execution policy.

The Set-ExecutionPolicy uses the ExecutionPolicy parameter to specify the RemoteSigned policy. The policy is set for the default scope, LocalMachine.

The Get-ExecutionPolicy cmdlet shows that RemoteSigned is the effective execution policy for the current PowerShell session.

The Start-ActivityTracker.ps1 script is executed from the current directory. The script is blocked by RemoteSigned because the script isn’t digitally signed.

For this example, the script’s code was reviewed and verified as safe to run. The Unblock-File cmdlet uses the Path parameter to unblock the script.

To verify that Unblock-File didn’t change the execution policy, Get-ExecutionPolicy displays the effective execution policy, RemoteSigned.

The script, Start-ActivityTracker.ps1 is executed from the current directory. The script begins to run because it was unblocked by the Unblock-File cmdlet.

Parameters

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Specifies the execution policy. If there are no Group Policies and each scope’s execution policy is set to Undefined, then Restricted becomes the effective policy for all users.

The acceptable execution policy values are as follows:

Suppresses all the confirmation prompts. Use caution with this parameter to avoid unexpected results.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Specifies the scope that is affected by an execution policy. The default scope is LocalMachine.

The effective execution policy is determined by the order of precedence as follows:

Execution policies for the CurrentUser scope are written to the registry hive HKEY_LOCAL_USER.

Execution policies for the LocalMachine scope are written to the registry hive HKEY_LOCAL_MACHINE.

Type:ExecutionPolicyScope
Accepted values:CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy
Position:1
Default value:LocalMachine
Accept pipeline input:True
Accept wildcard characters:False

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Inputs

Microsoft.PowerShell.ExecutionPolicy, System.String

Outputs

None

Set-ExecutionPolicy doesn’t return any output.

Notes

Set-ExecutionPolicy doesn’t change the MachinePolicy and UserPolicy scopes because they are set by Group Policies.

Set-ExecutionPolicy doesn’t override a Group Policy, even if the user preference is more restrictive than the policy.

If the Group Policy Turn on Script Execution is enabled for the computer or user, the user preference is saved, but it is not effective. PowerShell displays a message that explains the conflict.

Источник

PowerShell: Выполнение сценариев отключено в этой системе

Политики выполнения скриптов в PowerShell

Если вы увидели ошибку «Выполнение сценариев отключено в этой системе«, то можем проверить конфигурацию политик для запуска сценариев, которые настроены в Windows 10. Откройте PowerShell от имени администратора и:

Мы можем видеть несколько уровней разрешений политик для запуска сценариев.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

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

Когда вы знаете условия и ограничения скриптов, то можете изменить их. К примеру, чтобы исправить ошибку «Выполнение сценариев отключено в этой системе» достаточно ввести один апплет. Откройте PowerShell от имени админа и:

Разрешает без ограничений выполнять сценарии для локального пользователя. Ключ -Scope определяет, к чему применяется изменение политики. Когда вы вводите «CurrentUser«, то применяется только к текущему пользователю, а когда вы вводите «LocalMachine«, он применяется ко всей системе.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Если выше способ не помог вам запустить свой скрипт и ошибка «Выполнение сценариев отключено в этой системе» появляется, то можно снять полностью ограничения. Вы должны понимать, что это большой риск и ваш скрипт должен быть безопасен на 101%. Откройте PowerShell от имени админа и:

Источник

Политика выполнения скриптов PowerShell

При разработке PowerShell особое внимание было уделено безопасности. Одной из мер безопасности является наличие политики выполнения (Execution Policy), которая определяет, могут ли скрипты PowerShell выполняться в системе, и если могут, то какие именно.

Для примера возьмем чистую Windows 10, откроем консоль PowerShell и попробуем выполнить простой скрипт. Попытка завершится ошибкой, поскольку, как видно из сообщения, выполнение скриптов в системе запрещено.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

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

• Restricted — в системе запрещено выполнение любых скриптов, допускается только выполнение отдельных команд. Это политика по умолчанию для клиентских ОС Windows;
• AllSigned — разрешено выполнение только скриптов, имеющих цифровую подпись от доверенного издателя;
• RemoteSigned — для удаленных скриптов требуется наличие цифровой подписи, локальные скрипты выполняются без ограничений. Удаленными считаются скрипты, полученные из удаленных источников (загруженные из интернета, полученные по электронной почте и т.п.), локальными — скрипты, созданные на локальном компьютере. Это политика по умолчанию для серверных ОС Windows;
• Unrestricted — разрешено выполнение любых скриптов, как локальных так и удаленных. При выполнении удаленного скрипта без цифровой подписи будет выдано предупреждение. Это дефолтная и единственно возможная политика для всех ОС, отличных от Windows;
• Bypass — разрешено выполнение любых скриптов, никакие предупреждения и запросы не выводятся;
• Default — сбрасывает политику на значение по умолчанию. Для серверов это RemoteSigned, для клиентов Restricted;
• Undefined — не определено. В случае, если значение политики не определено, то применяется политика Restricted.

Теоретически все понятно, проверим на практике. Для просмотра параметров политики используется командлет Get-ExecutionPolicy, а для изменения Set-ExecutionPolicy.

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

Как и ожидалось, текущая политика Restricted. Разрешим выполнение скриптов, установив для политики значение Unrestricted:

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

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

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

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

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

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Следующим пунктом нашего меню идет политика RemoteSigned. Она является наиболее сбалансированной как с точки зрения безопасности, так и удобства использования, поэтому на серверах включена по умолчанию. Установим для политики значение RemoteSigned и проверим ее действие. Локальный скрипт снова выполняется без проблем, а удаленный выдает ошибку, поскольку у него нет подписи.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

У вас может возникнуть вопрос, как именно PowerShell различает локальные и удаленные скрипты. Тут все просто. При загрузке файла приложение (напр. браузер) добавляет файл идентификатор зоны (ZoneId), который и определяет, откуда был взят файл. Идентификатор хранится в альтернативном потоке и имеет значение от 0 до 4:

• Локальный компьютер (0)
• Местная сеть (1)
• Надежные сайты (2)
• Интернет (3)
• Опасные сайты (4)

Если файл имеет ZoneId 3 или 4, то PowerShell считает его удаленным. А если на компьютере включена конфигурация усиленной безопасности Internet Explorer, то файлы, взятые из локальной сети, тоже могут считаться удаленными.

Как выполнить удаленный скрипт? Во первых его можно разблокировать (превратить в локальный), для этого есть специальный командлет Unblock-File. Хотя если просто открыть скрипт на локальном компьютере и внести в него изменения, то он тоже станет локальным.

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

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

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

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Области применения

Политика выполнения имеет свою область действия (scope). Всего есть 5 областей:

Вывести значение политики для всех областей можно командой:

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Получается, что при установке политики без указания области изменяется значение LocalMachine. Если же требуется указать конкретную область действия, то сделать это можно с помощью параметра Scope командлета Set-ExecutionPolicy. Для примера установим для области СurrentUser политику Bypass:

Затем проверим значение политики в текущем сеансе и убедимся в том, что оно изменилось на Bypass.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Теперь установим политику Unrestricted для области Process:

Еще раз проверим текущую политику, теперь она имеет значение Unrestricted. Т.е. более ″конкретная″ политика всегда имеет больший приоритет.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Для областей UserPolicy и MachinePolicy значение политики задаются через GPO. За настройку отвечает параметр Turn on Script Execution (Включить выполнение сценариев), находящийся в разделе Administrative Templates\Windows Components\Windows PowerShell. Для UserPolicy он находится в конфигурации пользователя (User Configuration), для MachinePolicy — в конфигурации компьютера (Computer Configuration). Политика, применяемая к компьютеру, имеет приоритет перед политикой пользователя.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

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

• Allow only signed scripts (Разрешать только подписанные сценарии) — политика AllSigned;
• Allow local scripts and remote signed scripts (разрешать локальные и удаленные подписанные сценарии) — политика RemoteSigned;
• Allow all scripts (Разрешать все сценарии) — политика Unrestricted.

Политика Bypass считается небезопасной и ее нельзя установить через групповые политики.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Для примера установим для MachinePolicy политику RemoteSigned и проверим результат. Как видите, политика, назначенная через GPO, имеет больший приоритет и переопределяет все остальные политики.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

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

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

А что будет, если ни для одной области политика не определена, т.е. везде стоит значение Undefined? В этом случае все просто, выполнение всех скриптов запрещается, а текущая политика принимает значение Restricted.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Обход политики

Можно ли как то запустить скрип в обход политики выполнения, не изменяя ее значение? В принципе можно, есть несколько способов.

К примеру для того, чтобы выполнить скрипт, достаточно открыть его в проводнике, кликнуть правой клавишей мыши и выбрать пункт Выполнить с помощью PowewrShell (Run with PowerShell). Это запускает оболочку PowerShell c политикой Bypass. При этом политика применяется только для выполнения конкретного скрипта, значение политики в реестре не изменяется.

Этот способ называется ″Run with PowerShell″ и у него есть некоторые ограничения. Скрипты, запущенные таким образом, не могут взаимодействовать с пользователем (выводить сообщения на экран, требовать ввода данных и т.п.). Скрипт просто запускается, выполняется и немедленно закрывается.

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

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

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

set executionpolicy remotesigned что делает. Смотреть фото set executionpolicy remotesigned что делает. Смотреть картинку set executionpolicy remotesigned что делает. Картинка про set executionpolicy remotesigned что делает. Фото set executionpolicy remotesigned что делает

Еще один вариант — это попробовать изменить политику выполнения для области Process. Эта операция не вносит изменений в реестр и не требует прав администратора. Но в том случае, если для назначения политики выполнения используются групповые политики, этот способ не сработает.

Ну и наконец можно просто считать содержимое скрипта и выполнить его в виде команды. Например так:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *