Tôi đã có thể bỏ qua lỗi này bằng cách gọi PowerShell như sau:
powershell -executionpolicy bypass -File .\MYSCRIPT.ps1
Đó là, tôi đã thêm vào -executionpolicy bypass
cách tôi gọi kịch bản.
Điều này hoạt động trên Windows 7 Service Pack 1. Tôi mới sử dụng PowerShell, vì vậy có thể có những lưu ý khi thực hiện điều đó mà tôi không biết.
[Chỉnh sửa 2017-06-26] Tôi đã tiếp tục sử dụng kỹ thuật này trên các hệ thống khác bao gồm Windows 10 và Windows 2012 R2 mà không gặp sự cố.
Đây là những gì tôi đang sử dụng bây giờ. Điều này giúp tôi không vô tình chạy tập lệnh bằng cách nhấp vào nó. Khi tôi chạy nó trong bộ lập lịch, tôi thêm một đối số: "bộ lập lịch" và điều đó sẽ bỏ qua lời nhắc.
Thao tác này cũng tạm dừng cửa sổ ở cuối để tôi có thể xem đầu ra của 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%