WedX - журнал о программировании и компьютерных науках

Set-ExecutionPolicy Ошибка, когда не вызывается

Когда я запускаю любой сценарий из файла .ps1 на моем сервере, я получаю сообщение об ошибке, что Set-ExcutionPolicy выполняется успешно, но перекрывается более высокой областью. Однако ни один из выполняемых мной кодов не имеет ничего общего с политиками выполнения или их изменением. Любая идея, почему я получаю эту ошибку?

Это на сервере Windows 2012 R2, где политика выполнения для всех уровней настроена на удаленную подписку. Я использую PowerShell V4.0

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

Это ошибка:

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. For more information please see
"Get-Help Set-ExecutionPolicy".
At line:1 char:46
+ if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process  ...
+                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (:) [Set-ExecutionPolicy], SecurityException
    + FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand

  • Это происходит, когда я запускаю любой сохраненный сценарий PowerShell. Это может быть так же просто, как get-services, он все равно показывает ошибку. Я не могу поделиться многими подробностями, так как это рабочий сервер. 13.12.2018
  • Покажите фактическую ошибку. Скорее всего, у вас есть какой-то объект групповой политики или другие ограничения с точки зрения безопасности предприятия. 13.12.2018
  • По теме. 13.12.2018
  • Кроме того, что вы имеете в виду ни один из выполняемых мной кодов не имеет ничего общего с политиками выполнения или их изменением, когда ошибка ясно показывает, что вы используете Set-ExecutionPolicy (или, по крайней мере, пытаетесь это сделать)? 13.12.2018
  • Вы просматривали ВСЕ свои различные профили? тот, который используется для запуска сценариев, скорее всего, является профилем консоли ... и в нем может быть сценарий, который создает отображаемую вами ошибку. 13.12.2018
  • Вероятно, у вас есть объект групповой политики, который устанавливает политику выполнения. 14.12.2018
  • @AnsgarWiechers - Вот почему я задаю вопрос. Я вижу эту ошибку, когда запускаю сохраненный скрипт, который содержит простой код, состоящий из одной строки с надписью {get-services}. Также связанный пост не имеет отношения к моей проблеме. Я понимаю, как установить свою политику выполнения и как работает область действия. Я не понимаю, почему я вижу эту ошибку, когда я вообще не пытаюсь изменить политику. 14.12.2018
  • @Lee_Dailey Спасибо, посмотрю профиль, в котором запущен скрипт 14.12.2018
  • @ FrédéricBonneau. Я знаю, что у нас есть объект групповой политики, который устанавливает политику выполнения для двух высших областей. Мне просто интересно, почему мой скрипт заставляет его думать, что я хочу это изменить. 14.12.2018
  • Вы получаете ту же ошибку, если запускаете powershell.exe -NoProfile -NoExit из CMD или диалогового окна «Выполнить», а затем запускаете сценарий в этом случае? 14.12.2018
  • Нет, я не вижу ошибки, если запускаю ее из экземпляра CMD. 14.12.2018
  • @Tourius - если запуск с -NoProfile позволяет избежать ошибки ... тогда источник почти наверняка находится в профиле, используемом powershell.exe. пора начать копаться в этих файлах! [ухмылка] 14.12.2018

Ответы:


1

Пункт контекстного меню «Запуск с PowerShell» для файлов .ps1 вызывает следующую командную строку:

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'"

Он хранится в ключе реестра HKCU\Microsoft.PowerShellScript.1\Shell\0\Command. Поскольку у вас есть политика выполнения, определенная с помощью групповой политики, установка конфликтующей политики выполнения в области процесса всякий раз, когда вы запускаете сценарий PowerShell через его контекстное меню, вызывает наблюдаемую вами ошибку.

Измените командную строку в реестре примерно так:

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -File "%L"

и ошибка исчезнет.

14.12.2018
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]