Сценарии PowerShell для Exchange невозможно выполнить, но политика выполнения установлена.
Я не знаю, что произошло, но я регулярно выполняю HealthChecker for Exchange.
Но теперь я получаю сообщение об ошибке. Даже моя политика исполненияRemoteSigned
.
Даже установка политики выполнения наunrestricted
он показывает ту же ошибку.
Возможно ли, что на моей машине заблокированы скрипты Microsoft? Могу ли я разблокировать это? Я использовал другой профиль, и это сработало. Что в моем другом профиле может блокировать определенные скрипты?**
[PS] C:\temp>Get-ExecutionPolicy -list
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine RemoteSigned
[PS] C:\temp>.\ExchangeExtendedProtectionManagement.ps1 -ShowExtendedProtection
.\ExchangeExtendedProtectionManagement.ps1 : Die Datei "C:\temp\ExchangeExtendedProtectionManagement.ps1" kann nicht
geladen werden, da der Vorgang durch Richtlinien für die Softwareeinschränkung, z. B. die von der Gruppenrichtlinie
erstellten Richtlinien, blockiert wird.
In Zeile:1 Zeichen:1
+ .\ExchangeExtendedProtectionManagement.ps1 -ShowExtendedProtection
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : Sicherheitsfehler: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
[PS] C:\temp>.\HealthChecker.ps1
.\HealthChecker.ps1 : Die Datei "C:\temp\HealthChecker.ps1" kann nicht geladen werden, da der Vorgang durch
Richtlinien für die Softwareeinschränkung, z. B. die von der Gruppenrichtlinie erstellten Richtlinien, blockiert wird.
In Zeile:1 Zeichen:1
+ .\HealthChecker.ps1
+ ~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : Sicherheitsfehler: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
РЕДАКТИРОВАТЬ: По какой-то причине кажется, что подписи Microsoft больше не доверяют:BestätigungMöchten Sie diese Aktion wirklich ausführen?
Ausführen des Vorgangs "Update script to latest version" für das Ziel "HealthChecker.ps1".
[J] Ja [A] Ja, alle [N] Nein [K] Nein, keine [H] Anhalten [?] Hilfe (Standard ist "J"): J
WARNUNG: Signature is not trusted by machine as Valid, status: NotTrusted.
WARNUNG: AutoUpdate: Signature could not be verified: C:\Users\MartinAdmin\AppData\Local\Temp\HealthChecker.ps1.
WARNUNG: AutoUpdate: Update was not applied.
Exchange Health Checker version 22.08.09.0638
3 ответа
Проблема заключалась в том, что сертификат Microsoft был помещен в список ненадежных издателей.
После удаления сертификата формаuntrusted publishers
Я смог запустить все скрипты, как и раньше.
Сценарий PowerShell, скорее всего, заблокирован, если он был загружен из Интернета. Либо щелкните файл правой кнопкой мыши и отметьте «Разблокировать», затем «ОК», либо запустите «Разблокировать-файл»:
Unblock-File -Path <filepath>
Описание Unblock-File соответствует вашему сценарию :
Командлет Unblock-File позволяет открывать файлы, загруженные из Интернета. Он разблокирует файлы сценариев PowerShell, загруженные из Интернета, чтобы вы могли запускать их, даже если политика выполнения PowerShell — RemoteSigned. По умолчанию эти файлы блокируются, чтобы защитить компьютер от ненадежных файлов.
Поскольку скрипт работал, когда для политики выполнения установлено значение «Обход», это означает, что каким-то образом какая-то политика все еще ограничивает выполнение.
Хотя кажется, что политика «Неограниченный» позволяет все, это не так. Например, он может предупредить вас и запросить правильные разрешения перед выполнением неподписанного сценария. Вы можете попробовать подписать свой сценарий, чтобы проверить, не в этом ли проблема.
Для действительно неограниченной работы требуется политика обхода.
Я не могу угадать, что изменилось в вашем профиле, что внезапно вызвало ошибку. Это может быть даже повреждение профиля, что иногда случается с Windows. Вы можете продолжать использовать обход, если не найдено ничего, объясняющего проблему.