How do I get the Task Scheduler list in PowerShell?
Run this in PowerShell (Admin):
Get-ScheduledTask | Format-Table -AutoSize
Here’s the fastest way to see every scheduled task on your system.
Why does Task Scheduler sometimes stay quiet?
Task Scheduler is Windows’ built-in scheduler for running programs automatically.
It quietly handles everything from Windows updates to third-party scripts. When the GUI freezes or the MMC snap-in won’t open, PowerShell’s Get-ScheduledTask cmdlet is your best bet. It shows every task the OS knows about—even the hidden ones created by updates or other installers.
How do I pull the Task Scheduler list step by step?
Open PowerShell as admin, then run Get-ScheduledTask.
Fire up an elevated PowerShell window:
- Hit Win + X.
- Pick Windows Terminal (Admin) or PowerShell (Admin).
- Say yes to the UAC prompt.
Run the basic list command:
Get-ScheduledTask
You’ll get a table with TaskName, State, NextRunTime, and LastRunTime by default.
Make it easier to read:
Get-ScheduledTask | Format-Table -AutoSize
Want the actual XML behind a task?
(Get-ScheduledTask -TaskName "MyTask").Xml
Save the full list to a CSV:
Get-ScheduledTask | Export-Csv -Path "$env:USERPROFILE\Desktop\TaskList_$(Get-Date -Format 'yyyyMMdd').csv" -NoTypeInformation
What if PowerShell doesn’t return any tasks?
Try the GUI fallback or adjust your filters.
Use the GUI instead: Press Win + R, type taskschd.msc, and hit Enter. The left pane shows every folder and task.
Narrow down the results: Only want daily tasks? Filter with:
Get-ScheduledTask | Where-Object {$_.Triggers -like "*Daily*"}
Check a remote PC? Swap Get-ScheduledTask for Invoke-Command -ComputerName SERVER01 -ScriptBlock {Get-ScheduledTask} (admin rights and WinRM required).
How can I keep my Task Scheduler list clean?
Follow a few simple maintenance habits.
| Tip | Action | Reason |
| Use a naming scheme | Prefix custom tasks with ZZZ_ or your initials | Makes rogue tasks obvious when you run Get-ScheduledTask | Where-Object {$_.TaskName -like "ZZZ_*"} |
| Quarterly review | Open Task Scheduler every three months and delete anything older than 90 days that isn’t Microsoft or your AV vendor | Lowers attack surface; CISA recommends this for Windows hardening |
| Monthly backup | Run Get-ScheduledTask | Export-ScheduledTask to a secure share | If ransomware hits, you can rebuild tasks from XML instead of reinstalling everything |
| Disable odd triggers | Check the Conditions tab for tasks that wake the PC at 3 a.m. for no good reason | Saves laptop battery and reduces desktop power use |
Can I export the Task Scheduler list to a file?
Absolutely—use Export-Csv for a CSV file.
Run this command and you’ll get a clean CSV on your desktop:
Get-ScheduledTask | Export-Csv -Path "$env:USERPROFILE\Desktop\TaskList_$(Get-Date -Format 'yyyyMMdd').csv" -NoTypeInformation
How do I list only tasks that are currently enabled?
Pipe the output to Where-Object.
Run this to see only enabled tasks:
Get-ScheduledTask | Where-Object {$_.State -eq "Ready"}
What’s the difference between Get-ScheduledTask and Get-ScheduledTaskInfo?
Get-ScheduledTask shows task metadata, while Get-ScheduledTaskInfo shows runtime status.
Think of it this way: Get-ScheduledTask gives you the task details, and Get-ScheduledTaskInfo tells you when it last ran and whether it succeeded.
How do I find tasks that run under a specific user account?
Use Get-ScheduledTask with a filter on the Principal property.
To find tasks running as SYSTEM, try:
Get-ScheduledTask | Where-Object {$_.Principal.UserId -eq "SYSTEM"}
Can I list tasks from a specific folder?
Yes—specify the folder path with Get-ScheduledTask.
For example, to see tasks in the root folder:
Get-ScheduledTask -TaskPath "\"
How do I check if a specific task exists?
Use Get-ScheduledTask with the -TaskName parameter.
Run this to verify if "MyTask" exists:
Get-ScheduledTask -TaskName "MyTask" -ErrorAction SilentlyContinue
What’s the fastest way to see task triggers?
Add the Triggers property to your output.
Try this for a quick look:
Get-ScheduledTask | Select-Object TaskName, Triggers
How do I disable a task from PowerShell?
Use Set-ScheduledTask with the -State parameter.
To turn off "MyTask":
Set-ScheduledTask -TaskName "MyTask" -State Disabled
Can I recreate a task from its XML file?
Yes—use Register-ScheduledTask with the XML.
After you’ve saved the XML, run:
Register-ScheduledTask -TaskName "RestoredTask" -Xml (Get-Content "C:\path\to\file.xml" | Out-String) -Force
What’s the best way to troubleshoot a misbehaving task?
Check the LastRunTime and LastTaskResult properties.
Run this to inspect a failing task:
Get-ScheduledTask -TaskName "FaultyTask" | Get-ScheduledTaskInfo
Honestly, this is the fastest way to spot why a task isn’t running right. The LastTaskResult code tells you exactly what went wrong.
Edited and fact-checked by the TechFactsHub editorial team.