Set-ExecutionPolicy gloablly для определенного скрипта

#windows #powershell #windows-10 #powershell-5.0

#Windows #powershell #windows-10 #powershell-5.0

Вопрос:

Возможно ли Set-ExecutionPolicy для конкретного сценария глобально? Я знаю, что можно открыть PowerShell и установить политику для конкретного скрипта следующим образом:

 powershell.exe -ExecutionPolicy Bypass -File C:ScriptFromInternet.ps1
  

Но я пытаюсь установить политику для этого скрипта глобально, поэтому независимо от того, как я открываю PowerShell , для этого файла будет установлена эта политика. Таким образом, если я открою PowerShell из меню «Пуск» или если VS Code откроет PowerShell терминал, этот скрипт всегда будет работать / запускаться.

У Set-ExecutionPolicy него нет параметра для -File , поэтому я не уверен, как установить его глобально для определенного файла.

Ответ №1:

Нет.

Как задокументировано, нет концепции установки EP на уровне сценария.

Вы должны сделать это, как вы уже показали…

 powershell.exe -ExecutionPolicy Bypass -File C:ScriptFromInternet.ps1
  

… который, кстати, не находится на уровне сценария (поскольку такой вещи не существует), вы являетесь уровнем процесса по умолчанию.

Вы можете добавить его, EP, в свой профиль (профили)…

  • Майкрософт.Powersell_profile.ps1
  • Майкрософт.powersellise_profile.ps1
  • Microsoft.VSCode_profile.ps1

… но это относится к любому экземпляру PowerShell, который вы запускаете.

Опять же, как задокументировано, существует только 5 вариантов (file / script не является одним из них):

  1. Машинная политика
  2. Политика пользователя
  3. Процесс
  4. CurrentUser
  5. LocalMachine

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

Единственная реальная причина для изменения EP заключается в том, что EP машины является более строгим (ограниченным или AllSigned), применяемым через объект групповой политики, и вам нужно работать вне этого.

Комментарии:

1. Спасибо. Я не видел никакой документации, в которой говорилось бы, что нет концепции установки EP на уровне сценария, и я не хотел делать никаких предположений. Я рассмотрю его настройку в этих профилях.

2. Вы также можете просто создать пользовательский Powershell short cut на своем рабочем столе / панели задач и настроить его для запуска запуска с любым EP, который вы выберете. Просто прикрепите его к панели задач для быстрого доступа. Я делаю это регулярно, EP нашего машинного уровня установлены на AllSigned или Ограничены (в зависимости от того, где я нахожусь), и мне нужно ежедневно разрабатывать / тестировать в более упрощенном варианте использования. EP не влияет на код, выполняемый в панели редактора ISE / VSCode с помощью F5 / F8.

3. Дело в том, что я мог бы запустить PS множеством способов, от ярлыка до Пуск> введите PowerShell> enter. Я недостаточно знаю о сценариях профиля PowerShell — это может сработать для меня, как только я это выясню.

4. Что бы вы сделали, если хотите, чтобы файл Microsoft.PowerShell_profile.ps1 был тем, который обходит политику? Поскольку вы не можете добавить команду в свой профиль, потому что это файл, на который вы хотите повлиять.