Зачем мне нужен «Unblock-File», хотя политика выполнения - RemoteSigned? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть командный файл, который вызывает скрипт powershell и запускает его.

Powershell.exe -ExecutionPolicy RemoteSigned -File %1

%1 аргументом является file_name.ps1

Когда я запускаю его с локального диска, скрипт работает нормально.

однако я переместил сценарии для запуска на общем диске, и когда я пытаюсь запустить его оттуда, он выдает следующее приглашение перед продолжением:

Unblock_file prompt

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

Но почему это вообще проблема на общем диске, если я запускаю скрипт на локальном компьютере?диск это не подсказывает?и что я должен сделать, чтобы решить эту проблему?

Я попытался передать Unblock-File -Path some_path в powershell, но его явно не распознанный командлет.

1 Ответ

0 голосов
/ 26 сентября 2018

Хорошо, поэтому после невозможности загрузить идентификатор зоны для файла я попытался использовать политику ByPass следующим образом:

Powershell.exe -ExecutionPolicy ByPass -File %1

, чтобы она работала .... вместо RemoteSigned / Unrestricted ...

На основании статьи MSDN здесь: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-6

RemoteSigned: Могут выполняться сценарии.

Требуется цифровая подпись доверенного лицаиздатель сценариев и файлов конфигурации, загружаемых из Интернета (включая программы электронной почты и обмена мгновенными сообщениями).

Не требует цифровых подписей для сценариев, написанных на локальном компьютере (не загруженных из Интернета).).

Запускает сценарии, которые загружены из Интернета и не подписаны, если сценарии разблокированы, например с помощью командлета Unblock-File.

Unrestricted: Могут выполняться неподписанные скрипты.(Это может привести к запуску вредоносных сценариев.)

Предупреждает пользователя перед запуском сценариев и файлов конфигурации, загруженных из Интернета.

, но мой сценарий был скопирован локально с одного диска надругой, он не загружен из Интернета ... и в свойствах файла не было кнопки "Разблокировать", и командлет Unblock у меня все равно не работал.

Поэтому, чтобы избежать предупреждения, единственное, что сработало, это ByPass

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

...