#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, который вы запускаете.
- Машинная политика
- Политика пользователя
- Процесс
- CurrentUser
- 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
был тем, который обходит политику? Поскольку вы не можете добавить команду в свой профиль, потому что это файл, на который вы хотите повлиять.