Ich konnte diesen Fehler umgehen, indem ich PowerShell wie folgt aufrief:
powershell -executionpolicy bypass -File .\MYSCRIPT.ps1
Das heißt, ich habe das -executionpolicy bypass
zu der Art hinzugefügt , wie ich das Skript aufgerufen habe.
Dies funktionierte unter Windows 7 Service Pack 1. Ich bin neu in PowerShell, daher kann es zu Einschränkungen kommen, die mir nicht bekannt sind.
[Edit 2017-06-26] Ich habe diese Technik weiterhin ohne Probleme auf anderen Systemen einschließlich Windows 10 und Windows 2012 R2 verwendet.
Hier ist, was ich jetzt benutze. Dies verhindert, dass ich das Skript versehentlich ausführe, indem ich darauf klicke. Wenn ich es im Scheduler ausführe, füge ich ein Argument hinzu: "Scheduler", das die Eingabeaufforderung umgeht.
Dadurch wird auch das Fenster am Ende angehalten, damit ich die Ausgabe von PowerShell sehen kann.
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%