Automating PowerShell Scripts Using Task Scheduler
Windows Task Scheduler can help us automatically launch a program or PowerShell script at a specific time or when certain conditions and triggers are met.
This article will show us how to run a PowerShell script from Task Scheduler and create scheduled tasks using Windows PowerShell.
Running PowerShell Scripts Using Task Scheduler
Open the Task Scheduler console by pressing Windows+R and then typing taskschd.msc in the opening window. Once executed, follow the steps below.
First, click on Create a task and enter a name and description for the new task. Next, check the Run with the highest privileges box to run the program with administrator privileges.
When running tasks, it is best to assign a separate service account that will execute the task whether the user is currently in session or not.

Second, click on the Triggers tab and click the New… button. Here we can specify the conditions that trigger the task to be executed.
There are multiple ways to begin a task.
- On a Schedule
- At log on
- At startup
- On idle
- On an event
- At task creation/modification
- On connection to a user session
- On disconnection from a user session
- On workstation lock
- On workstation unlock
Pick a trigger that will fit the situation.

Third, click on the Actions tab, and click New…. Here we can specify the actions that will be executed whenever the trigger conditions are met.
This step must be followed exactly to properly run PowerShell. To automatically schedule the PowerShell script that the system will execute, fill in the following fields:
- Action:
Start a program - Program\script:
powershell(orpowershell.exe) - Add arguments (optional):
-File(Specify the path of the file here) (Any other arguments are placed here as well)
Click on OK to apply the changes.

Fourth, the Conditions tab enables us to specify the conditions that, along with the trigger, determine how the system should run the task.

Fifth, we can also set up additional parameters for your scheduled task on the Settings tab.

Sixth, when the task is configured, the system will ask us for the password of the account provided in the first step. Enter the password and hit OK to save the task.
Once that is done, the task should run the PowerShell file successfully if the system has initiated it through the setup trigger.
Creating Scheduled Tasks in PowerShell
Now that we have discussed setting up a task using Task Scheduler, let’s discuss how to create a scheduled task using PowerShell.
PowerShell 3.0 and 4.0 introduced cmdlets for creating scheduled tasks, like New-ScheduledTaskTrigger and Register-ScheduledTask.
# Specify the trigger settings
$Trigger = New-ScheduledTaskTrigger -At 10:00am -Daily
# Specify the account to run the script
$User = "NT AUTHORITY\SYSTEM"
# Specify program to run (PowerShell)
$Action = New-ScheduledTaskAction -Execute "PowerShell" -Argument "-file C:\PS\PSScript.ps1"
# Specify the name of the task
Register-ScheduledTask -TaskName "Test Script" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest -Force
Other trigger choices that could be useful in setting up new tasks include:
- The
-AtStartuptriggers our task at Windows startup. - The
-AtLogontriggers our task when the user signs in. - The
-Oncetriggers our task once. We can set a repetition interval using the-RepetitionIntervalparameter. - The
-Weeklytriggers our task once a week.
Note that, when using these cmdlets, it is impossible to trigger execution on an event as we did with the Task Scheduler tool.
PowerShell scripts with on an event triggers are much more complicated, so this is a disadvantage of using PowerShell rather than Task Scheduler.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn