by lunarg on November 26th 2015, at 15:10

When scheduling the run of a Powershell script through Task Scheduler, it is highly recommended to set up the task to run accordingly:

powershell.exe -NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File "path\to\script.ps1"

Scheduling Powershell scripts in this manner will prevent the dreaded 0x1 exit code from happening.

  • -NoProfile prevents loading of the user's profile, speeding up the startup of the script and preventing the script from depending on user-specific settings and scripts.
  • -NonInteractive will allow a script to exit rather than waiting indefinitely when a user prompt occurs.
  • Setting the -ExecutionPolicy to ByPass or Unrestricted will allow unsigned scripts to run properly (by default, only signed scripts are allowed to run).