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:\Scripts\DailyReport.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
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.