Мне удалось обойти эту ошибку, вызвав PowerShell следующим образом:
powershell -executionpolicy bypass -File .\MYSCRIPT.ps1
То есть я добавил -executionpolicy bypass
к тому, как я вызывал скрипт.
Это работало в Windows 7 с пакетом обновления 1. Я новичок в PowerShell, поэтому могут возникнуть проблемы, которые я не знаю.
[Изменить 2017-06-26] Я продолжал использовать эту технику в других системах, включая Windows 10 и Windows 2012 R2, без проблем.
Вот что я сейчас использую. Это удерживает меня от случайного запуска скрипта, нажав на него. Когда я запускаю его в планировщике, я добавляю один аргумент: «планировщик», который игнорирует приглашение.
Это также приостанавливает окно в конце, чтобы я мог видеть вывод PowerShell.
if NOT "%1" == "scheduler" (
@echo looks like you started the script by clicking on it.
@echo press space to continue or control C to exit.
pause
)
C:
cd \Scripts
powershell -executionpolicy bypass -File .\rundps.ps1
set psexitcode=%errorlevel%
if NOT "%1" == "scheduler" (
@echo Powershell finished. Press space to exit.
pause
)
exit /b %psexitcode%