Windows 10 включение выполнения сценариев powershell

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

Содержание:

  • Выполнение PowerShell скриптов запрещено для данной системы
  • Как разрешить запуск скриптов PowerShell с помощью Execution Policy?
  • Настройка PowerShell Execution Policy с помощью групповых политик
  • Способы обхода политики PowerShell Execution

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

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

File C:\ps\.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
Не удается загрузить файл.ps1, так как выполнение скриптов запрещено для данной системы.

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

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

Get-ExecutionPolicy

Get-ExecutionPolicy

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

  • Restricted – запрещен запуск скриптов PowerShell, можно выполнять только интерактивные команды в консоли;
  • AllSigned – разрешено выполнять только подписанные PS скрипты с цифровой подписью от доверенного издателя (можно подписать скрипт самоподписанным сертификатом и добавить его в доверенные). При запуске недоверенных скриптов появляется предупреждение:
    Do you want to run software from this untrusted publisher? File .ps1 is published by CN=test1 and is not trusted on your system. Only run scripts from trusted publishers

    вы хотите запустить powershell скрипт от недоверенного издателя?

  • RemoteSigned – можно запускать локальные PowerShell скрипты без ограничения. Можно запускать удаленные PS файлы с цифровой подписью (нельзя запустить PS1 файлы, скачанные из Интернета, запущенные из сетевой папки по UNC пути и т.д.);
  • Unrestricted – разрешен запуск всех PowerShell скриптов;

    При запуске сторонних PowerShell скриптов может появляется предупреждение с подтверждением запуска, см. ниже.

  • Bypass – разрешён запуск любых PS файлов (предупреждения не выводятся) – эта политика обычно используется для автоматического запуска PS скриптов без вывода каких-либо уведомлений (например при запуске через GPO, SCCM, планировщик и т.д.) и не рекомендуется для постоянного использования;
  • Default – сброс настроек выполнения скриптов на стандартную;

    В Windows 10 значение политики выполнения PowerShell по-умолчанию Restricted, а в Windows Server 2016 — RemoteSigned.

  • Undefined – не задано. Применяется политика Restricted для десктопных ОС и RemoteSigned для серверных.

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

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

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

Set-ExecutionPolicy RemoteSigned

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

Set-ExecutionPolicy RemoteSigned разрешить запуск локальных powershell скриптов

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

Set-ExecutionPolicy RemoteSigned –Force

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

Security warning
Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the
Unblock-File cmdlet to allow the script to run without this warning message.
Do you want to run?
[D] Do not run [R] Run once [S] Suspend [?] Help (default is "D")

Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning message

Как PowerShell различает локальные и удаленные скрипты? Все дело в идентификаторе зоны ZoneId, которую выставляет браузер в альтернативном потоке при загрузке файла (см. статью “Как Windows определяет, что файл скачан из Интернета?”). Вы можете разблокировать такой файл, поставив галку “Разблокирвать” в его свойствах или очиститься метку зоны с помощью комадлета Unblock-File.

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

  • MachinePolicy – действует для всех пользователей компьютера, настраивается через GPO;
  • UserPolicy – действует на пользователей компьютера, также настраивается через GPO;
  • Process — настройки ExecutionPolicy действует только для текущего сеанса PowerShell.exe (сбрасываются при закрытии процесса);
  • CurrentUser – политика ExecutionPolicy применяется только к текущему пользователю (параметр из ветки реестра HKEY_CURRENT_USER);
  • LocalMachine – политика для всех пользователей компьютера (параметр из ветки реестра HKEY_LOCAL_MACHINE);

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

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass –Force

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

Get-ExecutionPolicy -List

Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Bypass
CurrentUser Undefined
LocalMachine RemoteSigned

Get-ExecutionPolicy scopes области действия

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

Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Restricted –Force

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

ExecutionPolicy в реестре

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

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

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

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

  1. С помощью редактора доменных GPO (gpmc.msc) создайте новую GPO (или отредактируйте) существующую и назначьте ее на OU с компьютерами, к которым нужно применить политику запуска PowerShell скриптов;
  2. В редакторе политики перейдите в раздел Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Windows PowerShell и найдите политику Turn on Script Execution (Включить выполнение сценариев);

    Аналогичная политика есть в пользовательском разделе GPO — User Configuration, но политика компьютера имеет приоритет.

  3. Для политики доступны три значения:
    • Allow only signed scripts (Разрешать только подписанные сценарии) — соответствует политике AllSigned;
    • Allow local scripts and remote signed scripts (Разрешать локальные и удаленные подписанные сценарии) — соответствует политике PS RemoteSigned;
    • Allow all scripts (Разрешать все сценарии) — политика Unrestricted.
      групповая политика Turn on Script Execution

  4. Выберите необходимое значение политики, сохраните GPO и обновите политики на компьютере.
  5. Проверьте, что для области MachinePolicy теперь действуют новые настройки выполнения.

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

Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope. Due to the override, your shell will retain its current effective execution policy of RemoteSigned. Type "Get-ExecutionPolicy -List" to view your execution policy settings.

Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope

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

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

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

Get-Content c:\ps\check_process_elevation.ps1 | PowerShell.exe -noprofile –

Либо можно запустить новый процесс powershell.exe с политикой выполнения Bypass:

powershell.exe -noprofile -executionpolicy bypass -file c:\ps\check_process_elevation.ps1

обход действия powershell execution политики

Все способы:

  • Способ 1: Настройка локальной политики
  • Способ 2: Редактирование реестра
  • Способ 3: Консольная команда
  • Вопросы и ответы: 0

Способ 1: Настройка локальной политики

По умолчанию запуск сценариев PowerShell запрещен политикой выполнения функций средства, что обусловлено требованиями безопасности и призвано предотвратить возможность исполнения отдельных вредоносных скриптов в среде Windows. Изменить такое положение вещей в общем-то несложно, а основной способ это сделать подразумевает привлечение «Редактора локальной групповой политики» («РЛГП»).

«РЛГП» по умолчанию доступен только в Windows 10 редакций «Pro» и «Enterprise», пользователям «Home»-выпуска операционки с конечной целью запуска PowerShell-сценариев следует сразу переходить к рассмотрению инструкций «Способ 2» и «3» в этой статье.

  1. Открываем окно «Редактора локальной групповой политики». Проще всего это сделать введя запрос Изменение групповой политики в системный «Поиск» Виндовс,
    Как включить выполнение сценариев PowerShell в Windows 10 07

    также возможно через оснастку «Выполнить» (открывается по нажатию «Win»+«R» на клавиатуре) – оправляем с её помощью на выполнение команду:

    gpedit.msc

    Как включить выполнение сценариев PowerShell в Windows 10 08

    Читайте также: Запуск «Редактора локальной групповой политики» в Windows 10

  2. Задействовав средства левой части окна РЛГП, в разделе «Конфигурация компьютера» поочередно разворачиваем каталоги: «Административные шаблоны»,
    Как включить выполнение сценариев PowerShell в Windows 10 09

    затем из него — «Компоненты Windows».

  3. Как включить выполнение сценариев PowerShell в Windows 10 10

  4. В содержимом «Компоненты Windows» находим и кликом выделяем каталог «Windows Powershell».
  5. Как включить выполнение сценариев PowerShell в Windows 10 11

  6. Перемещаемся в область справа окна Редактора, кликаем правой кнопкой манипулятора (ПКМ) по наименованию политики «Включить выполнение сценариев».
    Как включить выполнение сценариев PowerShell в Windows 10 12

    В отобразившемся меню выбираем «Изменить».

  7. Как включить выполнение сценариев PowerShell в Windows 10 13

  8. В открывшемся средстве изменения параметров политики «Включить выполнение сценариев» переводим расположенную в правой верхней части окна радиокнопку в положение «Включено».
    Как включить выполнение сценариев PowerShell в Windows 10 14

    Кроме того, переходим здесь в блок «Параметры:», щёлкаем по изначально пустому раскрывающемуся списку «Политика выполнения»,

    Как включить выполнение сценариев PowerShell в Windows 10 16

    выбираем в нём «Разрешать все сценарии».

  9. Как включить выполнение сценариев PowerShell в Windows 10 17

  10. Завершив конфигурирование политики вышеуказанным образом, нажимаем «ОК».
    Как включить выполнение сценариев PowerShell в Windows 10 18

    На этом всё, закрываем окно средства изменения локальной групповой политики – возможность запуска, по сути, любых сценариев PowerShell в текущем экземпляре Windows 10 получена.

  11. Как включить выполнение сценариев PowerShell в Windows 10 19

Способ 2: Редактирование реестра

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

  1. Открываем «Редактор реестра». Существует множество способов это сделать, наиболее быстрые: отыскать ссылку на запуск приложения через системный «Поиск»,

    Как включить выполнение сценариев PowerShell в Windows 10 20

    отправить команду regedit через оснастку «Выполнить».

    Подробнее: Способы открытия «Редактора реестра» в Windows 10

  2. Как включить выполнение сценариев PowerShell в Windows 10 21

  3. Кликая по разворачивающим разделы из перечня слева в окне «Редактора реестра» элементам, переходим по следующему пути:

    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows

    Как включить выполнение сценариев PowerShell в Windows 10 23

    Другой метод перемещения в нужный раздел реестра: копируем путь к нему из текста этой статьи в буфер обмена Windows 10, затем вставляем данные в поле под строкой меню Редактора, нажимаем «Enter».

    Как включить выполнение сценариев PowerShell в Windows 10 24

  4. Выделив (щелчком ЛКМ по наименованию в панели слева окна Редактора) расположенную по указанному выше пути папку «Windows», вызываем меню «Правка»,

    Как включить выполнение сценариев PowerShell в Windows 10 25

    кликаем в нём «Создать»«Раздел».

  5. Как включить выполнение сценариев PowerShell в Windows 10 26

  6. Далее вводим имя сформированного каталога – PowerShell,
    Как включить выполнение сценариев PowerShell в Windows 10 27

    нажимаем «Ввод» на клавиатуре.

  7. Как включить выполнение сценариев PowerShell в Windows 10 28

  8. Переходим в правую часть окна Редактора, кликаем ПКМ в её свободной от значков и записей области, в открывшемся контекстном меню нажимаем «Создать»«Параметр DWORD (32 бита)».
  9. Как включить выполнение сценариев PowerShell в Windows 10 29

  10. Присваиваем созданному объекту наименование EnableScripts,
    Как включить выполнение сценариев PowerShell в Windows 10 30

    дважды щёлкаем по нему.

  11. Как включить выполнение сценариев PowerShell в Windows 10 31

  12. В поле «Значение» отобразившегося окошка «Изменение параметра DWORD (32 бита)» вместо 0 пишем 1,

    после этого кликаем «ОК».

  13. Вновь кликаем ПКМ в отображающей параметры из раздела реестра «PowerShell» области, теперь выбираем в меню «Создать»«Строковый параметр».
  14. Как включить выполнение сценариев PowerShell в Windows 10 34

  15. В качестве имени параметра вводим ExecutionPolicy,
    Как включить выполнение сценариев PowerShell в Windows 10 35

    после чего двойным кликом по получившемуся объекту открываем окошко его изменения.

  16. Как включить выполнение сценариев PowerShell в Windows 10 36

  17. В поле «Значение:» вводим RemoteSigned,
    Как включить выполнение сценариев PowerShell в Windows 10 37

    щёлкаем «ОК» мышкой.

  18. Как включить выполнение сценариев PowerShell в Windows 10 38

  19. На этом всё – закрываем окно «Редактора реестра», перезагружаем компьютер и можем приступать к отныне беспроблемному и практически ничем не ограничиваемому запуску сценариев PowerShell.
  20. Как включить выполнение сценариев PowerShell в Windows 10 39

Способ 3: Консольная команда

Еще один метод устранения предусмотренных в Windows 10 преград для выполнения PowerShell-сценариев реализовать гораздо проще, нежели вышеописанные подходы, но решение в большей степени единоразовое (действует в рамках одного сеанса работы с консольной оболочкой). Подойдёт, когда нужно задействовать один-единственный скрипт рассматриваемого типа или это требуется редко.

  1. Запускаем приложение PowerShell от имени Администратора. Один из вариантов это сделать – средствами системной оснастки «Выполнить»:
    • Нажимаем «Win»+«R» на клавиатуре, вводим в поле «Открыть» отобразившегося окошка такую команду:

      рowershell

    • Как включить выполнение сценариев PowerShell в Windows 10 40

    • Далее нажимаем «Ctrl»+«Shift» на клавиатуре и, удерживая эти клавиши, кликаем «ОК» в окне «Выполнить» левой кнопкой мыши.
    • Как включить выполнение сценариев PowerShell в Windows 10 41

    • Подтверждаем («Да») поступивший из системного модуля «Контроль учётных записей» запрос.
    • Как включить выполнение сценариев PowerShell в Windows 10 42

    Читайте также: Запуск «PowerShell» в ОС Windows 10

  2. Вводим и запускаем команду перевода политики выполнения сценариев PowerShell в состояние, когда ею ничего не блокируется:

    Set-ExecutionPolicy Bypass

  3. Как включить выполнение сценариев PowerShell в Windows 10 43

  4. Введя Y и затем нажав «Enter», подтверждаем запрос системы «Вы хотите изменить политику выполнения?».
  5. Как включить выполнение сценариев PowerShell в Windows 10 44

  6. На этом всё – возможности выполнять сценарии теперь ничего не препятствует и так будет продолжаться до момента закрытия сессии ПоверШелл. Вводим в консоль путь на диске ПК, по которому расположен целевой исполняемый файл рассматриваемого типа, инициируем его запуск.
  7. Как включить выполнение сценариев PowerShell в Windows 10 46

Читайте также: Как скачать ISO-образ Windows при помощи PowerShell-скрипта Fido

Наша группа в TelegramПолезные советы и помощь

Windows 10/11 с настройками по-умолчанию блокирует запуск неподписанных PowerShell скриптов. Это означает, что если вы попробуете вручную запустить PS1 файл скрипта или PSM1 модуля из консоли powershell.exe или pwsh.exe, появится ошибка:

Невозможно загрузить файл *.PS1, так как выполнение сценариев отключено в этой системе.
File C:\PS\test_script.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.

Невозможно загрузить файл *.PS1, так как выполнение сценариев отключено в этой системе

В Windows возможностью запуска файлов с PowerShell скриптами (расширение *.PS1) ограничивается настройками политики выполнения скриптов (Script Execution Policy).

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

Get-ExecutionPolicy –List

Get-ExecutionPolicy настройки политики запуска по-умолчанию

По умолчанию в Windows запуск PowerShell скриптов блокируется с помощью значения Restricted для области LocalMachine. Остальные четыре области (MachinePolicy, UserPolicy, Process, CurrentUser) не настроены (Undefined). Это означает что в сессии будет применяться политика для области LocalMachine.

Настройки политики Script Execution Policy по умолчанию защищают Windows от запуска потенциально опасного кода в PowerShell скриптах. В большинстве случаев в целях безопасности не рекомендуется изменять настройки политики выполнения скриптов на компьютерах.

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

Выполните команду:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned

Теперь попробуйте выполнить ваш PS1 файл в этой же консоли. PowerShell скрипт должен успешно запустится.

Разрешить запуск PowerShell скриптов в текущей сессии RemoteSigned

Как вы видите, значение Execution Policy для scope Process изменилось на RemoteSigned. Это тип политики разрешает запуск любых локальных PS1 файлов, но требует наличие доверенной цифровой подписи для всех PowerShell файлов, скачанных их Интернета.

В данном примере мы изменили настройки Execution Policy только для текущего процесса PowerShell. После того, как вы закроете консоль pwsh.exe/powershell.exe, или завершите сессию Windows, запуск скриптов PowerShell будет опять запрещен. Кроме того, этот способ позволит вам переопределить текущие настройки Execution Policy для процесса под пользователей без прав администратора.

Если попытаться изменить настройки политики запуска PowerShell скриптов для области LocalMachine или MachinePolicy под пользователем без прав локального администратора, появится ошибка:

Set-ExecutionPolicy: Access to the path ‘C:\Program Files\PowerShell\7\powershell.config.json’ is denied. To change the execution policy for the default (LocalMachine) scope, start PowerShell with the “Run as administrator” option. To change the execution policy for the current user, run "Set-ExecutionPolicy -Scope CurrentUser".

Set-ExecutionPolicy: Access to the path ‘C:\Program Files\PowerShell\7\powershell.config.json’ is denied.

Если вы планирует запускать PowerShell скрипт из bat файла, или задания планировщика (Task Scheduler), можно обойти настройки Execution Policy.Для этого нужно запустить ваш PowerShell файл в отдельном процессе с параметром executionpolicy RemoteSigned или Bypass.

Powershell.exe -noprofile -executionpolicy bypass -file c:\ps\test_script.ps1

Запуск powershell скрипта с параметров bypass

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

Если вы хотите разрешать запуск любых локальных PowerShell скриптов в Windows, можно задать политику RemoteSigned для области LocalMachine (это менее безопасный способ!):

Set-ExecutionPolicy –ExecutionPolicy RemoteSigned

При отладке и разработке PowerShell скриптов в среде Visual Studio Code, также будет постоянно появляться ошибка “ps1 cannot be loaded because running scripts is disabled on this system” в Visual Studio Code. В качестве обходного решения нужно добавьте следующие настройки в файл settings.json, которые будут запускать скрипт в режиме Bypass (ctrl + shift + p -> settings.json):

"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell",
"args": ["-ExecutionPolicy", "Bypass"]
}
},
"terminal.integrated.defaultProfile.windows": "PowerShell"

Перезапустите среду VSCode.

If PowerShell is blocking you from running scripts, follow these steps to enable PowerShell scripts execution on Windows 10.

PowerShell is a powerful Windows automation and management tool. From the PowerShell command-line interface, you can control and automate almost any part or procedure of Windows. In fact, there are a ton of both official and community-driven PowerShell scripts out there on the internet to get work done on Windows 10.  When needed, you can create your own scripts too.

Basically, a PowerShell script is nothing but a text file with a bunch of commands and file extension of “.ps1”. Using the script, PowerShell can execute the commands in the file in sequential order to procedure desired results.

Considering how powerful the ability to execute scripts is, PowerShell has a built-in mechanism to block unwanted or accidental script execution. For example, when you try to execute a PowerShell script with default settings, it will show the “cannot be loaded because the execution of scripts is disabled on this system.” error. To enable PowerShell scripts execution, you first need to set the proper execution policy.

If you ever need to execute PowerShell scripts, follow the steps listed below to enable PowerShell scripts on Windows 10.

To enable PowerShell scripts, follow the steps given below one after the other.

  1. Press the Windows Key to open the Start menu.
  2. Type “PowerShell“.
  3. Right-click on the PowerShell result and select “Run as administrator“.
  4. After opening the PowerShell window, execute “get-executionpolicy” to know the current execution policy.
  5. Chances are it will say “Restricted“. This means the scripts are blocked.
    Get-execution-policy-010920

  6. In the PowerShell window, execute the “set-executionpolicy remotesigned” command.
  7. Type “A” next to the confirmation message and press “Enter“.
    Set-execution-policy-to-enable-powershell-scripts-010920

  8. You’ve changed the execution policy to enable PowerShell scripts.

That is all. From now on you can execute the scripts created directly on your machine or signed scripts download from the internet or other computers.

If you want to run unsigned scripts downloaded from the internet or other computers, you need to set the execution policy to “unrestricted”. To do that, execute the “set-executionpolicy unrestricted” command in the PowerShell window.

To disable the PowerShell script execution, you can simply set the execution policy back to restricted. Just execute the “set-executionpolicy restricted” command and you are good to go.

That is all. It is that simple to enable PowerShell scripts execution in Windows 10. If you are stuck or need some help, comment below and I will try to help as much as possible.

To learn more about PowerShell execution policies, read how to change PowerShell exchange policy in Windows 10. You can also know more about running PowerShell scripts from this Microsoft TechNet article.

Table of Contents:

PowerShell is a powerful tool that many, including myself, don’t use to its full potential. That’s why most of us rely on PowerShell scripts crafted by others, but this can have its own hurdles. Often, you’ll see errors like “PowerShell: running scripts is disabled on this system”. To Enable PowerShell scripts in Windows 10, you must first set the execution policy.

This extra step is to protect you against attackers with malicious scripts, and should only be switched if you trust its source. It’s possible to modify PowerShell script execution via the Group Policy editor and registry, but the easiest and most sensical method is via PowerShell itself. As a result, we’re only going to focus on how to change PowerShell execution policy via the command line today.

PowerShell Execution Policies and Scope values explained

PowerShell has five execution policies; AllSigned, Bypass, RemoteSigned, Restricted, and Unrestricted. It also has three “scope” values which determine how far the PowerShell script execution changes will reach. You can read up on all of them in the tables below:

Execution Policy Description
Default Sets Windows to the default execution policy – Restricted for regular Windows and RemoteSigned for server installs.
Restricted The default execution policy for Windows 10. You can’t run any PowerShell scripts and PowerShell is set to interactive mode so that you can only run individual commands.
RemoteSigned Default for server installs. You can run downloaded PowerShell scripts, but they must be signed by a trusted publisher. Non-downloaded PowerShell scripts don’t need a signature.
AllSigned You can only run PowerShell scripts from a trusted publisher, regardless of where they came from.
Unrestricted You can run unsigned scripts, but you’ll get a warning before trying to run ones that come from the internet.
Bypass The least strict setting. Run any script with no warnings or prompts. Not recommended for anything other than test machines.
Scope Description
Process Set the execution policy for the current Windows PowerShell instance.
CurrentUser The execution policy is set for the current user only and stored in the HKEY_CURRENT_USER registry key.
LocalMachine  
AllSigned Sets the policy for everyone on the machine via a HKEY_LOCAL_MACHINE key.

Keep these values in mind as you set your execution policy, as choosing the wrong one could have unintended security consequences.

How to Check Your PowerShell Execution Policy

It’s a good idea to determine what execution policy your PC already has before you change anything. This can also help after you change for verification purposes.

  1. Open PowerShell

    Press “Windows +X” to open the Start context menu and click “Windows PowerShell (Admin)”.

    Windows 10 - Start - PowerShell as admin

  2. Enter the PowerShell get execution policy command

    In the main PowerShell window, type the following and press enter:

    Get-ExecutionPolicy -List

    Check the fields for your current user and local machine to determine the current policy.

    Windows 10 - PowerShell - Get-ExecutionPolicy -List

How to Set PowerShell Execution Policy to RemoteSigned

There’s a fast, UI-friendly way to enable running PowerShell scripts with the RemoteSigned policy via Windows settings.

  1. Go to Update & Security settings

    Press “Windows + I” to open settings and click on “Update & Security”.

    Windows 10 - Settings

  2. Set the PowerShell execution policy to RemoteSigned via developer options

    On the left sidebar, click “For developers”, then scroll down to the “PowerShell” subheading. Tick “change execution policy to allow local PowerShell scripts to run without signing. Require signing for remote scripts.”

    Windows 10 - Settings - Update and Security - PowerShell execution Policy

How to Set the PowerShell Execution Policy for the Current User via PowerShell

Alternatively, you can enable PowerShell scripts via a different policy for the current user through the command-line.

  1. Type the following command:

    Set-ExecutionPolicy Bypass -Scope CurrentUser -Force

    Change “Bypass” for whichever policy type you want to use to enable PowerShell scripts, referring to the table above.

    Windows 10 - PowerShell - Set Execution Policy for Current User

How to Enable PowerShell Scripts for the Local Machine via Command Line

If you want to apply a policy to the machine as a whole that’s possible via a slight change to the command.

  1. (Optional) set the current user policy to Undefined

    When setting your execution policy for the local machine, Windows will use whatever you have chosen for your current user before the global setting. If this happens, you may get an error with the line “Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope”.

    If you’d like to your current user to have the same setting as the local machine as a whole, you can switch it to Undefined or change it separately in the next step. Otherwise, you can ignore the error.

    Windows 10 - PowerShell - Execution Policy override warning

  2. Use the PowerShell set execution policy command to enable PowerShell scripts in Windows

    You can set the execution policy for the current Windows user and the Local machine with two separate commands:

    Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
    Set-ExecutionPolicy Unrestricted -Scope LocalMachine -Force

    You can set a different policy for each, based on the table above, or set the current user to “Undefined” to have it follow the Local Machine setting.

    Windows 10 - PowerShell -Deactivate execution Policy override warning

How to Set PowerShell Execution Policy for the Current PowerShell Window Only

For security, it’s generally recommended that most users set PowerShell execution policy on a per-script basis.

  1. Enable PowerShell script execution for the current instance

    In your PowerShell window, type and enter:

    Set-ExecutionPolicy Bypass -Scope Process -Force

    Only do this if you trust the script. You can then run the script as you normally would.

    Windows 10 - PowerShell - Set Execution Policy for Process

Last Updated on August 14, 2020 8:22 pm CEST

Ryan Maskellhttps://ryanmaskell.co.uk

Ryan has had a passion for gaming and technology since early childhood. Fusing the skills from his Creative Writing and Publishing degree with profound technical knowledge, he enjoys covering news about Microsoft. As an avid writer, he is also working on his debut novel.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Спешит время на компьютере windows 10
  • Где найти файлы реестра windows 10
  • Как установить dvd привод на компьютер windows 10
  • Как сделать обновление на ноутбуке windows 7
  • Как выключить заставку на windows 10