Task Scheduler is one of the most useful but underused tools in Windows. Automating repetitive tasks — running scripts, sending reports, cleaning up files — saves significant time in both personal and enterprise environments. This guide covers how to create and manage scheduled tasks in Windows 10, Windows 11 and Windows Server via the GUI and PowerShell in 2026.
Create a Scheduled Task via Task Scheduler GUI
- Press Windows + R and type
taskschd.msc - In the Actions panel click Create Task (not Create Basic Task — Create Task gives full control)
- On the General tab give the task a name and description
- Select Run whether user is logged on or not for background tasks
- Check Run with highest privileges if the task requires admin rights
- On the Triggers tab click New and set when the task should run
- On the Actions tab click New and set the program or script to run
- On the Conditions tab configure power and network conditions
- On the Settings tab configure what happens if the task fails or runs too long
- Click OK and enter credentials if prompted
Create a Scheduled Task via PowerShell
# Create a scheduled task to run a PowerShell script daily at 7am
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File C:ScriptsDailyReport.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At "07:00"
$settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit (New-TimeSpan -Hours 1) -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 5)
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "Daily Report" -Action $action -Trigger $trigger -Settings $settings -Principal $principal -Description "Runs daily report at 7am"
Common Scheduled Task Triggers
# Run at system startup
$trigger = New-ScheduledTaskTrigger -AtStartup
# Run at user logon
$trigger = New-ScheduledTaskTrigger -AtLogOn -User "domainusername"
# Run every hour
$trigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Hours 1) -Once -At (Get-Date)
# Run on a specific day of the week
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At "09:00"
# Run on the last day of the month
$trigger = New-ScheduledTaskTrigger -Monthly -DaysOfMonth 28,29,30,31 -At "23:00"
Manage Scheduled Tasks via PowerShell
# List all scheduled tasks
Get-ScheduledTask | Select-Object TaskName, TaskPath, State | Format-Table -AutoSize
# Get details of a specific task
Get-ScheduledTask -TaskName "Daily Report" | Get-ScheduledTaskInfo
# Run a task immediately
Start-ScheduledTask -TaskName "Daily Report"
# Disable a task
Disable-ScheduledTask -TaskName "Daily Report"
# Delete a task
Unregister-ScheduledTask -TaskName "Daily Report" -Confirm:$false
# Export a task to XML
Export-ScheduledTask -TaskName "Daily Report" | Out-File "C:\Backup\DailyReport.xml"
# Import a task from XML
Register-ScheduledTask -Xml (Get-Content "C:\Backup\DailyReport.xml" | Out-String) -TaskName "Daily Report"
Deploy Scheduled Tasks via SCCM or Group Policy
For enterprise deployment, use Group Policy Preferences to create scheduled tasks across multiple machines without scripting. Go to Computer Configuration → Preferences → Control Panel Settings → Scheduled Tasks → New → Scheduled Task (At least Windows 7) and configure the task as required. Group Policy Preferences also allow you to update or delete existing tasks.
Frequently Asked Questions
Why is my scheduled task not running?
Check the task history in Task Scheduler — right-click the task and select Properties then go to the History tab. Common causes include incorrect credentials, the script path being wrong, execution policy blocking the script, or the task running under an account without the required permissions. Check the Last Run Result code — 0x0 means success, any other code indicates an error.
What is the difference between running as SYSTEM and running as a specific user?
Running as SYSTEM gives the task full local system privileges and does not require storing a password. It is ideal for tasks that only need local machine access. Running as a specific user is needed when the task accesses network resources, as SYSTEM does not have network credentials. For network access use a service account with the minimum required permissions.
How do I run a PowerShell script as a scheduled task?
Set the action to run PowerShell.exe with arguments: -ExecutionPolicy Bypass -NonInteractive -File C:\Scripts\YourScript.ps1. Use -ExecutionPolicy Bypass to ensure the script runs regardless of the machine execution policy. Use -NonInteractive to prevent the script from prompting for input.
Can I run a scheduled task on a remote computer?
Yes — use Register-ScheduledTask with the -CimSession parameter: $session = New-CimSession -ComputerName PC001 then Register-ScheduledTask -TaskName MyTask -CimSession $session. Alternatively use Invoke-Command to run the task creation script remotely via PowerShell remoting.
Gear We Recommend
Testing configs is easier with a dedicated admin machine set up right. Here’s the kit we use.
Browse our Windows Admin Toolkit picks on AmazonAs an Amazon Associate, TechyGeeksHome earns from qualifying purchases.
Discover more from TechyGeeksHome
Subscribe to get the latest posts sent to your email.