Обход против неограниченных политик исполнения - PullRequest
0 голосов
/ 16 мая 2018

Документация по теме обеспечивает только это:

Без ограничений. Загружает все файлы конфигурации и запускает все сценарии. Если вы запустили неподписанный скрипт, который был загружен из Интернета, вам будет предложено разрешение перед его запуском.

Обход. Ничто не заблокировано и нет предупреждений или подсказок.

Мне кажется, что эти двое примут любые сценарии, но, к моему удивлению, это не так. Обход может блокировать выполнение в некоторых случаях.

Итак, в чем разница между этими двумя?

Ответы [ 2 ]

0 голосов
/ 10 августа 2019

Разница в описаниях, которые вы дали в вопросе. Неограниченный позволяет вам питать иллюзию, что все компьютеры работают под управлением Windows, используют только NTFS и загружают файлы только с браузерами, которые сохраняют ADS. На самом деле, если вы сохраняете файл в windows в файловой системе FAT или в сетевом ресурсе, который не использует NTFS на сервере, или загружаете его другим способом, например, с помощью git, powershell считает, что он создается локально, независимо от того, откуда он взялся. Обход не проверяет ничего из этого и просто запускает все. Неограниченный должен предупреждать вас о вещах, которые он считает опасными, но не может надежно проверить или определить. Используйте то, что щекочет ваше воображение.

PS> rm -path file.ps1 -stream zone.identifier
Обсудите ...
0 голосов
/ 16 мая 2018

Согласно комментариям, не должно быть особых различий в поведении этих политик выполнения.Однако Bypass предназначен для использования, когда вы временно изменяете политику выполнения во время одного прогона Powershell.exe, где Unrestricted предназначен для использования, если вы хотите навсегда изменить настройку политики выполнения для одногосистемных областей (MachinePolicy, UserPolicy, Process, CurrentUser, LocalMachine).

Некоторые примеры:

  1. Вы находитесь в системе, где вы хотите изменить политику выполнениябыть неограниченным, чтобы любой пользователь мог без проблем запустить любой скрипт PowerShell.Вы должны выполнить:

    Set-ExecutionPolicy Unrestricted
    
  2. Вы находитесь в системе, где политика выполнения блокирует ваш сценарий, но вы хотите запустить его через PowerShell и игнорировать политику выполнения при запуске.Вы должны выполнить:

    powershell.exe .\yourscript.ps1 -executionpolicy bypass
    
  3. Вы запускаете Powershell.exe в системе, где политика выполнения блокирует выполнение сценариев, но вы хотите изменить политику только на время жизниВы находитесь в интерактивном сеансе powershell.exe. Вы должны запустить:

     Set-ExecutionPolicy Bypass -Scope Process
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...