Consegui contornar esse erro invocando o PowerShell assim:
powershell -executionpolicy bypass -File .\MYSCRIPT.ps1
Ou seja, adicionei o -executionpolicy bypass
à forma como invoquei o script.
Isso funcionou no Windows 7 Service Pack 1. Eu sou novo no PowerShell, então pode haver restrições para fazer isso que eu não estou ciente.
[Editar 26-06-2017] Continuei a usar essa técnica em outros sistemas, incluindo Windows 10 e Windows 2012 R2, sem problemas.
Aqui está o que estou usando agora. Isso me impede de executar acidentalmente o script clicando nele. Quando eu o executo no planejador, adiciono um argumento: "planejador" e isso ignora o prompt.
Isso também pausa a janela no final para que eu possa ver a saída do 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%