Как включить выполнение сценариев в pycharm
Перейти к содержимому

Как включить выполнение сценариев в pycharm

  • автор:

Как решить проблему с терминалом PyCharm?

625e78a89f687133959111.jpeg

Новичок в python. Подскажите, пожалуйста, почему терминал выдает ошибку и невозможно загрузить библиотеку из-за этого.. Как исправить?? Пишет
Невозможно загрузить файл C:\Users\User\PycharmProjects\pythonProject2\venv\Scripts\activate.ps1, так как выполнение сценариев отключено в этой системе. Для получени
я дополнительных сведений см. about_Execution_Policies по адресу https:/go.microsoft.com/fwlink/?LinkID=135170.
+ CategoryInfo : Ошибка безопасности: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnauthorizedAccess
PS C:\Users\User\PycharmProjects\pythonProject2>

Прикрепляю скрин:

  • Вопрос задан более года назад
  • 40238 просмотров

2 комментария

Простой 2 комментария

TosterModerator

Модератор @TosterModerator

Всю текстовую информацию следует размещать в виде текста. Код оборачивать тегом code.
Не следует злоупотреблять bold и другими выделениями шрифтов текста.

Максим Якимов @Melomanium

Добрый день villanelle1. Обновите PowerShell. У меня на данный момент версия (7.2.5). Зайдите в PyCharm IDE, далее Settings/Tools/Terminal. В параметрах ShellPath выбираете путь до ранее установленной обновленной версии PowerShell, примените настройки. Перезапустите программу, все проблемы исчезнут. Пс. Предварительно Вам надо посмотреть какая групповая политика у Вас сейчас есть. Делается это командой Get-ExecutionPolicy в PowerShell, должна быть она Unrestricted, если другая, командой Set-ExecutionPolicy Unrestricted -Force, можно ее включить. Примечание — У меня есть подозрение что должно работать и после обновления и замены пути к PowerShell. Удачи!

Решения вопроса 0
Ответы на вопрос 5
Максим Якимов @Melomanium
«Системный администратор»

62cde568a869a477992579.jpeg

Добрый день villanelle1. Обновите PowerShell. У меня на данный момент версия (7.2.5). Зайдите в PyCharm IDE, далее Settings/Tools/Terminal. В параметрах ShellPath выбираете путь до ранее установленной обновленной версии PowerShell, примените настройки. Перезапустите программу, все проблемы исчезнут. Пс. Предварительно Вам надо посмотреть какая групповая политика у Вас сейчас есть. Делается это командой Get-ExecutionPolicy в PowerShell, должна быть она Unrestricted, если другая, командой Set-ExecutionPolicy Unrestricted -Force, можно ее включить. Примечание — У меня есть подозрение что должно работать после обновления и замены пути к PowerShell. Удачи!

Ответ написан более года назад
Комментировать
Нравится 11 Комментировать

AlexNest

Работаю с Python/Django

Set-ExecutionPolicy Unrestricted #Позволит запускать любые скрипты (более низкий уровень безопасности) Set-ExecutionPolicy RemoteSigned # Позволит запускать локальные скрипты

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

если выполнять из C:\Windows\system32 то все хорошо, если с D:\SCRIPTS\sc.ps1 то все не хочет, как это можно исправить?

Невозможно загрузить файл D:\SCRIPTS\sc.ps1, так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Execution_Policies по адресу http://go.microsoft.com/fwlink/?LinkID=135170. + CategoryInfo : Ошибка безопасности: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : UnauthorizedAccess 
$ipv4 = (Test-Connection -ComputerName $env:computername -count 1).ipv4address.IPAddressToString $num = $ipv4.split(".")[-1] $ie = Invoke-WebRequest -Uri "http://****/indata.php?nt=$num" -Method POST -ContentType "text/plain; charset=utf-8" 

Отслеживать
задан 22 янв 2019 в 11:55
631 1 1 золотой знак 6 6 серебряных знаков 15 15 бронзовых знаков
Переходил по указанному адресу? about_Execution_Policies
22 янв 2019 в 11:57
Да там сказано через Set-ExecutionPolicy Unrestricted но это ничем хорошим не закончится
22 янв 2019 в 11:59
Там кроме Unrestricted еще 5 политик есть
22 янв 2019 в 12:01
там только либо разрешить всем сценариям работать либо нет, можно как то работать с одним сценарием?
22 янв 2019 в 12:02
можно разрешить на текущий сеанс только.
22 янв 2019 в 12:05

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

  • Открываем терминал от админа.
  • Пишем и запускаем: Set-ExecutionPolicy RemoteSigned
  • На вопрос отвечаем: A (Да для всех)

Отслеживать
ответ дан 2 ноя 2019 в 8:59
Serg The Bright Serg The Bright
1,446 1 1 золотой знак 8 8 серебряных знаков 7 7 бронзовых знаков
Это единственный во всем интернете, включая англоязычный, простой и верный ответ.
4 дек 2019 в 12:57
Спасибо за ответ!
8 ноя 2020 в 10:46

Единственное что тут можно добавить — это рекомендацию: если это нужно для разовой установки чего-то — то лучше потом вернуть состояние в стандартное: Set-ExecutionPolicy Default. Это поможет избежать вредоносного ПО 🙂

2 дек 2020 в 9:06

По ссылке, которая указанна у сообщении об ошибке, идет описание политик выполнения.

Для запуска локальных скриптов, нужно установить минимум политику REMOTESIGNED, в этом случае можно будет запускать локальные не подписанные скрипты.

Для установки политики можно воспользоваться командой

Set-ExecutionPolicy -ExecutionPolicy

Так же можно ограничить область применения данной политики, для этого можно воспользоваться параметром -Scope . По умолчанию политика устанавливается для всех пользователей на локальном компьютере, однако с помощью значения CurrentUser , можно ограничить применение только для текущего пользователя, а с помощью значения Process применение ограничится текущим запущенным процессом PowerShell.

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

> Set-ExecutionPolicy RemoteSigned -Scope Process 

и затем запустить нужный скрипт.

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

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

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

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

  1. Ограниченный (Restricted) — значение по умолчанию. Блокируется выполнение любых скриптов и разрешается работа интерактивных команд.
  2. Все подписанные (All Signed) — разрешено выполнение скриптов, имеющих цифровую подпись.
  3. Удаленные подписанные (Remote Signed) — локальные скрипты работают без подписи. Все скачанные скрипты должны иметь цифровую подпись.
  4. Неограниченный (Unrestricted) — разрешено выполнение любых скриптов. При запуске не подписанного скрипта, который был загружен из Интернета, программа может потребовать подтверждение.
  5. Обходной (Bypass) — ничего не блокируется, никакие предупреждения и запросы не появляются.

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

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

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

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

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

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

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

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

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

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

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

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

Для выполнения выше представленных команд без подтверждения изменения, воспользуйтесь параметром -Force , например выполните команду:

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

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

Правдолюб 29.09.2022 в 21:23

при запуске сценария в консоли ISE все работает.
правой кнопкой на файл .ps1 — Выполнить с помощью Powershell — работает
двойной клик на файл .ps1 — не работает. мелькает черное/синее окно и ничего.
Win —>Powershell —> расположение файла —> х64 и х86 —> свойства -дополнительно запускать от имени администратора — включено.
.ps1 —> свойства — Приложение — WindowsPowerShell
Set-executionpolicy Unrestricted.
Что я делаю не так? не могу запустить файл скрипта двойным кликом. Прошу помощи

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

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

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

Не удается загрузить файл C:\Documents and Settings\Recluse\Рабочий стол\script.ps1, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений.

В данном случае выполнению скрипта препятствует включенный запрет на выполнение неподписанных скриптов.

Отключение запрета на выполнение скриптов через PowerShell

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

Set-ExecutionPolicy Unrestricted

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

Set-ExecutionPolicy RemoteSigned

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

Set-ExecutionPolicy Restricted

Кроме этого, можно обойти запрет на выполнение скрипта просто используя параметр -ExecutionPolicy Bypass запуска для PowerShell. То есть, если Вам нужно выполнить файл script.ps1, то можно это сделать следующим образом:

PowerShell.exe -ExecutionPolicy Bypass -File script.ps1

Отключение запрета через групповые политики

Настройки PowerShell находятся в отдельном разделе групповых политик — Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Windows PowerShell. Конкретно, для разрешения выполнения скриптов, нужно открыть параметр «Включить выполнение сценариев«, и задать ему значение «Разрешить локальные сценарии и удаленные подписанные сценарии«.

Отключение запрета через реестр

  • Restricted
  • AllSigned
  • RemoteSigned
  • Unrestricted

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

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