Разрешить выполнение сценариев PowerShell Windows 10
Обновлено: 21.11.2024
Если вы хотите включить или выключить выполнение сценария Windows PowerShell в Windows 10, следуйте этому пошаговому руководству. Мы будем использовать редактор реестра и редактор локальной групповой политики, чтобы включить или отключить эту функцию.
Windows PowerShell — это важный и удобный инструмент, включенный в операционную систему Windows. В основном существует два типа сценариев: подписанные доверенным издателем и локальные сценарии. Локальные сценарии — это то, что вы создаете на своем персональном компьютере, а другой сценарий — это то, что доверенный издатель подписал для выполнения определенной задачи.
Включить или отключить выполнение сценария Windows PowerShell
- Найдите gpedit.msc в поле поиска на панели задач.
- Нажмите Изменить групповую политику в результатах поиска.
- Перейдите к Windows PowerShell в разделе Конфигурация компьютера.
- Дважды щелкните Включить выполнение сценария.
- Выберите параметр Включено.
- Выберите Политику выполнения из раскрывающегося списка.
- Выберите параметр Отключено, чтобы отключить выполнение скрипта.
- Нажмите Применить и ОК.
Давайте подробно рассмотрим эти шаги.
Сначала вам нужно будет открыть на своем компьютере редактор локальной групповой политики. Для этого найдите gpedit.msc в поле поиска на панели задач и нажмите Изменить групповую политику в результатах поиска. После открытия этого инструмента перейдите по следующему пути:
В папке Windows PowerShell вы увидите параметр «Включить выполнение сценария». Дважды щелкните по нему и выберите параметр «Включено».
- Разрешить только подписанные сценарии
- Разрешить локальные скрипты и скрипты с удаленной подписью
- Разрешить все сценарии
Если вы хотите отключить выполнение сценария в Windows PowerShell, выберите параметр «Отключено».
В любом случае нажмите «Применить» и «ОК», чтобы сохранить изменения.
Как было сказано ранее, такое же изменение можно внести с помощью редактора реестра. Перед этим рекомендуется создать точку восстановления системы и сделать резервную копию всех файлов реестра.
Включить или отключить выполнение сценария Windows PowerShell с помощью реестра
Чтобы включить или отключить выполнение сценария Windows PowerShell, выполните следующие действия:
- Нажмите Win+R.
- Введите regedit и нажмите кнопку Ввод.
- Нажмите кнопку Да.
- Перейдите в Windows внутри ключа HKLM.
- Щелкните правой кнопкой мыши Windows > Создать > Ключ.
- Назовите его PowerShell.
- Щелкните правой кнопкой мыши PowerShell > Новое значение DWORD (32-разрядное).
- Назовите его EnableScripts.
- Дважды щелкните по нему, чтобы установить значение данных как 1.
- Щелкните правой кнопкой мыши PowerShell > Создать > Строковое значение.
- Назовите его как ExecutionPolicy.
- Дважды щелкните по нему, чтобы установить данные значения, как указано ниже.
Если вы хотите узнать больше, продолжайте читать.
Чтобы начать, нажмите Win+R, введите regedit и нажмите кнопку Enter. Если вы видите приглашение UAC, нажмите кнопку «Да», чтобы открыть редактор реестра на вашем компьютере. После этого перейдите по следующему пути-
Щелкните правой кнопкой мыши Windows, выберите "Создать" > "Ключ" и назовите его PowerShell.
Вам нужно будет создать значение DWORD (32-разрядное) и значение String в ключе PowerShell. Для этого щелкните правой кнопкой мыши PowerShell > Создать > Значение DWORD (32-разрядное) и назовите его EnableScripts.
Дважды щелкните EnableScripts, чтобы установить для параметра Value data значение 1 или 0. Если вы хотите включить эту функцию, установите значение 1. В противном случае установите значение 0.
Теперь вам нужно установить политику выполнения. Для этого щелкните правой кнопкой мыши PowerShell > Создать > Строковое значение и назовите его ExecutionPolicy.
- AllSigned: разрешить только подписанные скрипты
- RemoteSigned: разрешить локальные и удаленно подписанные сценарии.
- Неограниченно: разрешить все сценарии
Наконец нажмите кнопку ОК, чтобы сохранить изменения.
Вот и все! Надеюсь, это поможет.
Дата: 3 декабря 2020 г. Метки: PowerShell
Похожие записи
Команда Install-Module была найдена в модуле PowerShellGet, но модуль не может быть загружен
Как экспортировать список служб Windows с помощью командной строки
Доступ к PowerShell Get-Appxpackage запрещен, не распознан или не работает
[электронная почта защищена]
сообщить об этом объявлении
Мы покажем вам, как включить сценарии PowerShell в Windows 10, настроив политику выполнения с помощью командной строки.
PowerShell — это мощный инструмент, который многие, в том числе и я, не используют в полной мере. Вот почему большинство из нас полагаются на сценарии PowerShell, созданные другими, но это может иметь свои собственные препятствия. Часто вы будете видеть такие ошибки, как «PowerShell: выполнение сценариев отключено в этой системе». Чтобы включить сценарии PowerShell в Windows 10, необходимо сначала установить политику выполнения.
Этот дополнительный шаг предназначен для защиты от злоумышленников с вредоносными сценариями, и его следует переключать только в том случае, если вы доверяете его источнику. Можно изменить выполнение скрипта PowerShell с помощью редактора групповой политики и реестра, но самый простой и разумный способ — через сам PowerShell. Поэтому сегодня мы сосредоточимся только на том, как изменить политику выполнения PowerShell через командную строку.
Объяснение политик выполнения PowerShell и значений области действия
PowerShell имеет пять политик выполнения; AllSigned, Bypass, RemoteSigned, Restricted и Unrestricted. Он также имеет три значения «области действия», которые определяют, насколько далеко зайдут изменения выполнения скрипта PowerShell. Вы можете прочитать обо всех них в таблицах ниже:
Политика выполнения | Описание |
По умолчанию | Задает для Windows политику выполнения по умолчанию — Restricted для обычных установок Windows и RemoteSigned для серверных установок. |
Restricted | Политика выполнения по умолчанию для Windows 10. Вы не можете запускать какие-либо сценарии PowerShell, а PowerShell установлен в интерактивный режим, поэтому вы можете выполнять только отдельные команды. | tr>
RemoteSigned | По умолчанию для серверных установок. Вы можете запускать загруженные сценарии PowerShell, но они должны быть подписаны доверенным издателем. Незагруженные сценарии PowerShell не нуждаются в подписи. |
AllSigned | Вы можете запускать сценарии PowerShell только от доверенного издателя, независимо от того, откуда они пришли. |
Неограниченно | Вы можете запускать неподписанные сценарии, но перед попыткой запускать файлы из Интернета. |
Обход | Наименее строгая настройка. Запустите любой скрипт без предупреждений или подсказок. Не рекомендуется ни для чего, кроме тестовых машин. |
Область | Описание |
Процесс | Установите политику выполнения для текущего экземпляра Windows PowerShell. |
CurrentUser | Политика выполнения устанавливается только для текущего пользователя и сохраняется в разделе реестра HKEY_CURRENT_USER. |
LocalMachine | |
AllSigned | Устанавливает политику для всех на машине с помощью ключа HKEY_LOCAL_MACHINE. |
Помните эти значения при настройке политики выполнения, так как выбор неправильного может привести к непредвиденным последствиям для безопасности.
Как проверить политику выполнения PowerShell
Прежде чем что-либо менять, рекомендуется определить, какая политика выполнения уже используется на вашем ПК. Это также может помочь после внесения изменений в целях проверки.
Нажмите «Windows + X», чтобы открыть контекстное меню «Пуск», и нажмите «Windows PowerShell (Admin)».
В главном окне PowerShell введите следующее и нажмите Enter:
Проверьте поля для текущего пользователя и локального компьютера, чтобы определить текущую политику.
Как настроить политику выполнения PowerShell на RemoteSigned
Существует быстрый и удобный в пользовательском интерфейсе способ включить запуск сценариев PowerShell с помощью политики RemoteSigned через настройки Windows.
-
Перейдите в настройки обновлений и безопасности
Нажмите «Windows + I», чтобы открыть настройки, и нажмите «Обновление и безопасность».
На левой боковой панели нажмите «Для разработчиков», затем прокрутите вниз до подзаголовка «PowerShell». Установите флажок «изменить политику выполнения, чтобы разрешить запуск локальных сценариев PowerShell без подписи. Требовать подписи для удаленных скриптов».
Как установить политику выполнения PowerShell для текущего пользователя с помощью PowerShell
Кроме того, вы можете включить сценарии PowerShell с помощью другой политики для текущего пользователя через командную строку.
Set-ExecutionPolicy Bypass -Scope CurrentUser -Force
Измените «Обход» для любого типа политики, который вы хотите использовать, чтобы включить сценарии PowerShell, сверяясь с таблицей выше.
Как включить сценарии PowerShell для локального компьютера через командную строку
Если вы хотите применить политику ко всей машине, это возможно с помощью небольшого изменения команды.
-
(Необязательно) установите для текущей пользовательской политики значение Undefined
При настройке политики выполнения для локального компьютера Windows будет использовать то, что вы выбрали для текущего пользователя перед глобальной настройкой. В этом случае вы можете получить сообщение об ошибке со строкой "Windows PowerShell успешно обновила вашу политику выполнения, но этот параметр переопределен политикой, определенной в более конкретной области действия".
Если вы хотите, чтобы у вашего текущего пользователя были те же настройки, что и у локального компьютера в целом, вы можете переключить его на Не определено или изменить отдельно на следующем шаге. В противном случае вы можете игнорировать ошибку.
Вы можете установить политику выполнения для текущего пользователя Windows и локального компьютера с помощью двух отдельных команд:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
Set-ExecutionPolicy Unrestricted -Scope LocalMachine -Force
Вы можете установить разные политики для каждого из них на основе приведенной выше таблицы или установить для текущего пользователя значение «Не определено», чтобы он следовал настройкам локального компьютера.
Как установить политику выполнения PowerShell только для текущего окна PowerShell
В целях безопасности большинству пользователей обычно рекомендуется устанавливать политику выполнения PowerShell для каждого сценария.
-
Включить выполнение сценария PowerShell для текущего экземпляра
В окне PowerShell введите:
Set-ExecutionPolicy Bypass -Scope Process -Force
Делайте это только в том случае, если вы доверяете сценарию. Затем вы можете запустить скрипт как обычно.
Если PowerShell блокирует выполнение сценариев, выполните следующие действия, чтобы включить выполнение сценариев PowerShell в Windows 10.
PowerShell — это мощное средство автоматизации и управления Windows. С помощью интерфейса командной строки PowerShell вы можете управлять и автоматизировать практически любую часть или процедуру Windows. На самом деле, в Интернете есть множество как официальных, так и созданных сообществом сценариев PowerShell для выполнения работы в Windows 10. При необходимости вы также можете создавать свои собственные сценарии.
По сути, сценарий PowerShell — это не что иное, как текстовый файл с набором команд и расширением «.ps1». Используя сценарий, PowerShell может выполнять команды в файле в последовательном порядке для получения желаемых результатов.
Учитывая, насколько мощной является возможность выполнения сценариев, PowerShell имеет встроенный механизм блокировки нежелательного или случайного выполнения сценариев. Например, когда вы пытаетесь выполнить сценарий PowerShell с настройками по умолчанию, он покажет «невозможно загрузить, поскольку выполнение сценариев отключено в этой системе». ошибка. Чтобы включить выполнение сценариев PowerShell, сначала необходимо установить правильную политику выполнения.
Если вам когда-нибудь понадобится выполнить сценарии PowerShell, выполните перечисленные ниже шаги, чтобы включить сценарии PowerShell в Windows 10.
Шаги по включению выполнения скриптов PowerShell в Windows 10
- Нажмите клавишу Windows, чтобы открыть меню "Пуск".
- Введите «PowerShell».
- Щелкните правой кнопкой мыши результат PowerShell и выберите «Запуск от имени администратора».
- После открытия окна PowerShell выполните «get-executionpolicy», чтобы узнать текущую политику выполнения.
- Скорее всего, там будет указано «Запрещено». Это означает, что скрипты заблокированы.
- В окне PowerShell выполните команду set-executionpolicy remotesigned.
- Введите «A» рядом с подтверждающим сообщением и нажмите «Ввод».
- Вы изменили политику выполнения, чтобы включить сценарии PowerShell. ол>р>
- Все подписи. Требуется, чтобы все сценарии и файлы конфигурации были подписаны доверенным издателем, включая сценарии, написанные на локальном компьютере.
- Обход. Ничего не заблокировано, предупреждений и подсказок нет.
- По умолчанию. Задает политику выполнения по умолчанию. Ограничено для клиентов Windows или RemoteSigned для серверов Windows.
- Удаленная подпись. Требуется, чтобы все сценарии и файлы конфигурации, загруженные из Интернета, были подписаны доверенным издателем. Политика выполнения по умолчанию для серверных компьютеров Windows.
- Запрещено. Не загружает файлы конфигурации и не запускает сценарии. Политика выполнения по умолчанию для клиентских компьютеров Windows.
- Не определено. Для области не задана политика выполнения. Удаляет назначенную политику выполнения из области, не заданной групповой политикой. Если политика выполнения во всех областях не определена, действующая политика выполнения ограничена.
- Не ограничено. Начиная с PowerShell 6.0, это политика выполнения по умолчанию для компьютеров, отличных от Windows, и ее нельзя изменить. Загружает все файлы конфигурации и запускает все сценарии. Если вы запускаете неподписанный скрипт, загруженный из Интернета, перед запуском вам будет предложено предоставить разрешение.
- Машинная политика. Задается групповой политикой для всех пользователей компьютера.
- Пользовательская политика. Задается групповой политикой для текущего пользователя компьютера.
- Процесс. Влияет только на текущий сеанс PowerShell.
- Текущий пользователь.Влияет только на текущего пользователя.
- Локальная машина. Область действия по умолчанию, влияющая на всех пользователей компьютера.
- Как установить mysql на Ubuntu
- Linux ищет MAC-адрес
- Как выйти из telnet linux
- Как подключиться к виртуальному серверу Ubuntu
- Как узнать текущий пароль Windows 10
Это все. Отныне вы можете запускать сценарии, созданные непосредственно на вашем компьютере, или загружать подписанные сценарии из Интернета или других компьютеров.
Если вы хотите запускать неподписанные скрипты, загруженные из Интернета или с других компьютеров, вам необходимо установить политику выполнения на «неограниченно». Для этого выполните команду set-executionpolicy unlimited в окне PowerShell.
Чтобы отключить выполнение скрипта PowerShell, вы можете просто установить политику выполнения обратно на ограничение. Просто выполните команду «set-executionpolicy limited», и все готово.
Это все. Включить выполнение сценариев PowerShell в Windows 10 очень просто. Если вы застряли или вам нужна помощь, оставьте комментарий ниже, и я постараюсь помочь, насколько это возможно.
Чтобы узнать больше о политиках выполнения PowerShell, прочитайте, как изменить политику обмена PowerShell в Windows 10. Вы также можете узнать больше о выполнении скриптов PowerShell из этой статьи Microsoft TechNet.
Задает политики выполнения PowerShell для компьютеров Windows.
Синтаксис
Описание
Командлет Set-ExecutionPolicy изменяет политики выполнения PowerShell для компьютеров Windows. Дополнительные сведения см. в разделе about_Execution_Policies.
Начиная с PowerShell 6.0 для компьютеров, отличных от Windows, политика выполнения по умолчанию не ограничена и не может быть изменена. Командлет Set-ExecutionPolicy доступен, но PowerShell отображает сообщение консоли о том, что он не поддерживается.
Политика выполнения является частью стратегии безопасности PowerShell. Политики выполнения определяют, можете ли вы загружать файлы конфигурации, такие как ваш профиль PowerShell, или запускать сценарии. И должны ли сценарии иметь цифровую подпись перед запуском.
Областью командлета Set-ExecutionPolicy по умолчанию является LocalMachine, что влияет на всех, кто использует компьютер. Чтобы изменить политику выполнения для LocalMachine, запустите PowerShell с параметром «Запуск от имени администратора».
Чтобы отобразить политики выполнения для каждой области в порядке приоритета, используйте Get-ExecutionPolicy -List . Чтобы увидеть действующую политику выполнения для вашего сеанса PowerShell, используйте Get-ExecutionPolicy без параметров.
Примеры
Пример 1. Установка политики выполнения
В этом примере показано, как установить политику выполнения для локального компьютера.
Командлет Set-ExecutionPolicy использует параметр ExecutionPolicy для указания политики RemoteSigned. Параметр Scope указывает значение области по умолчанию, LocalMachine. Чтобы просмотреть параметры политики выполнения, используйте командлет Get-ExecutionPolicy с параметром List.
Пример 2. Установка политики выполнения, конфликтующей с групповой политикой
Эта команда пытается установить для политики выполнения области LocalMachine значение Restricted. LocalMachine имеет более строгие ограничения, но не является эффективной политикой, поскольку конфликтует с групповой политикой. Политика Restricted записывается в ветку реестра HKEY_LOCAL_MACHINE.
Командлет Set-ExecutionPolicy использует параметр ExecutionPolicy для указания политики Restricted. Параметр Scope указывает значение области по умолчанию, LocalMachine. Командлет Get-ChildItem использует параметр Path с поставщиком HKLM для указания расположения в реестре.
Пример 3. Применение политики выполнения с удаленного компьютера к локальному компьютеру
Эта команда получает объект политики выполнения с удаленного компьютера и устанавливает политику на локальном компьютере. Get-ExecutionPolicy отправляет объект Microsoft.PowerShell.ExecutionPolicy по конвейеру. Командлет Set-ExecutionPolicy принимает входные данные конвейера и не требует параметра ExecutionPolicy.
Командлет Invoke-Command выполняется на локальном компьютере и отправляет ScriptBlock на удаленный компьютер. Параметр ComputerName указывает удаленный компьютер Server01. Параметр ScriptBlock запускает командлет Get-ExecutionPolicy на удаленном компьютере. Объект Get-ExecutionPolicy отправляется по конвейеру в Set-ExecutionPolicy. Set-ExecutionPolicy применяет политику выполнения к области локального компьютера по умолчанию, LocalMachine.
Пример 4. Установка области действия для политики выполнения
В этом примере показано, как задать политику выполнения для указанной области CurrentUser. Область CurrentUser влияет только на пользователя, который устанавливает эту область.
Set-ExecutionPolicy использует параметр ExecutionPolicy для указания политики AllSigned. Параметр Scope указывает CurrentUser. Чтобы просмотреть параметры политики выполнения, используйте командлет Get-ExecutionPolicy с параметром List.
Действующая политика выполнения для пользователя становится AllSigned.
Пример 5. Удаление политики выполнения для текущего пользователя
В этом примере показано, как использовать политику выполнения Undefined для удаления политики выполнения для указанной области.
Set-ExecutionPolicy использует параметр ExecutionPolicy для указания политики Undefined. Параметр Scope указывает CurrentUser. Чтобы просмотреть параметры политики выполнения, используйте командлет Get-ExecutionPolicy с параметром List.
Пример 6. Установка политики выполнения для текущего сеанса PowerShell
Область процесса влияет только на текущий сеанс PowerShell. Политика выполнения сохраняется в переменной среды $env:PSExecutionPolicyPreference и удаляется при закрытии сеанса.
Set-ExecutionPolicy использует параметр ExecutionPolicy для указания политики AllSigned. Параметр Scope задает значение Process. Чтобы просмотреть параметры политики выполнения, используйте командлет Get-ExecutionPolicy с параметром List.
Пример 7. Разблокируйте скрипт, чтобы запустить его без изменения политики выполнения
В этом примере показано, как политика выполнения RemoteSigned предотвращает запуск неподписанных скриптов.
Рекомендуется прочитать код сценария и убедиться в его безопасности перед использованием командлета Unblock-File. Командлет Unblock-File разблокирует сценарии, чтобы они могли выполняться, но не изменяет политику выполнения.
Set-ExecutionPolicy использует параметр ExecutionPolicy для указания политики RemoteSigned. Политика задана для области по умолчанию, LocalMachine.
Командлет Get-ExecutionPolicy показывает, что RemoteSigned является действующей политикой выполнения для текущего сеанса PowerShell.
Сценарий Start-ActivityTracker.ps1 выполняется из текущего каталога. Сценарий заблокирован RemoteSigned, так как у сценария нет цифровой подписи.
Для этого примера код скрипта был проверен и признан безопасным для выполнения. Командлет Unblock-File использует параметр Path для разблокировки сценария.
Чтобы убедиться, что Unblock-File не изменил политику выполнения, Get-ExecutionPolicy отображает действующую политику выполнения RemoteSigned.
Сценарий Start-ActivityTracker.ps1 выполняется из текущего каталога. Сценарий начинает выполняться, поскольку он был разблокирован командлетом Unblock-File.
Параметры
Запрашивает подтверждение перед запуском командлета.
Тип: | SwitchParameter |
Псевдонимы: | cf |
Позиция: | Имя |
Значение по умолчанию: | False | < /tr>
Принимать ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Тип: | SwitchParameter |
Позиция: | Именованный |
Значение по умолчанию: | False |
Принять ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Определяет область, на которую влияет политика выполнения. Область по умолчанию — LocalMachine.
Эффективная политика выполнения определяется порядком приоритета следующим образом:
Область процесса влияет только на текущий сеанс PowerShell. Политика выполнения сохраняется в переменной среды $env:PSExecutionPolicyPreference, а не в реестре. Когда сеанс PowerShell закрывается, переменная и значение удаляются.
Политики выполнения для области CurrentUser записываются в ветку реестра HKEY_LOCAL_USER.
Политики выполнения для области LocalMachine записываются в ветку реестра HKEY_LOCAL_MACHINE.
Тип: | ExecutionPolicyScope |
Допустимые значения: | CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy |
Позиция: | 1 |
Значение по умолчанию: | LocalMachine |
Принимать ввод конвейера: | True |
Принимать подстановочные знаки: td> | Ложь |
Показывает, что произойдет, если командлет запустится. Командлет не запущен.
Тип: | SwitchParameter |
Псевдонимы: | wi |
Позиция: | Имя |
Значение по умолчанию: | False | < /tr>
Принимать ввод конвейера: | False |
Допускать подстановочные знаки: | False |