Am reușit să ocolească această eroare invocând puteri asemănătoare:
powershell -executionpolicy bypass -File .\MYSCRIPT.ps1
Adică, am adăugat codul -executionpolicy bypass
la modul în care am invocat scriptul.
Acest lucru a lucrat la Windows 7 Service Pack 1. Sunt nou la powershell, deci ar putea fi avertismente pentru a face acest lucru pe care nu sunt conștienți de.
[Edit 2017-06-26] Am continuat să utilizez această tehnică pe alte sisteme, inclusiv Windows 10 și Windows 2012r2, fără probleme.
Iată ce folosesc acum. Acest lucru mă împiedică să rulez în mod accidental scriptul făcând clic pe el. Când o execut în planificator, adaug un argument: "scheduler" și care ocolește promptul.
Acest lucru întrerupe, de asemenea, fereastra de la sfârșitul, astfel încât am putea vedea de ieșire de 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%