Skip to main content

How Do I Get Task Scheduler List In PowerShell?

by
Last updated on 3 min read

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.

  1. Fire up an elevated PowerShell window:

    • Hit Win + X.
    • Pick Windows Terminal (Admin) or PowerShell (Admin).
    • Say yes to the UAC prompt.
  2. Run the basic list command:

    Get-ScheduledTask

    You’ll get a table with TaskName, State, NextRunTime, and LastRunTime by default.

  3. Make it easier to read:

    Get-ScheduledTask | Format-Table -AutoSize
  4. Want the actual XML behind a task?

    (Get-ScheduledTask -TaskName "MyTask").Xml
  5. 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.

TipActionReason
Use a naming schemePrefix custom tasks with ZZZ_ or your initialsMakes rogue tasks obvious when you run Get-ScheduledTask | Where-Object {$_.TaskName -like "ZZZ_*"}
Quarterly reviewOpen Task Scheduler every three months and delete anything older than 90 days that isn’t Microsoft or your AV vendorLowers attack surface; CISA recommends this for Windows hardening
Monthly backupRun Get-ScheduledTask | Export-ScheduledTask to a secure shareIf ransomware hits, you can rebuild tasks from XML instead of reinstalling everything
Disable odd triggersCheck the Conditions tab for tasks that wake the PC at 3 a.m. for no good reasonSaves 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.
Alex Chen

Alex Chen is a senior tech writer and former IT support specialist with over a decade of experience troubleshooting everything from blue screens to printer jams. He lives in Portland, OR, where he spends his free time building custom PCs and wondering why printer drivers still don't work in 2026.