Tasklist.exe is a command-line utility built into Windows that displays all running processes on your computer. System administrators, troubleshooters, and power users rely on this tool to monitor applications, identify resource hogs, and diagnose performance issues without opening Task Manager.
This guide walks you through everything you need to know about tasklist.exe, from basic commands to advanced filtering techniques.
What Is Tasklist.exe and Why It Matters
Tasklist.exe lives in your Windows System32 folder and provides detailed information about every process currently running on your machine. Unlike the graphical Task Manager, tasklist works entirely through the command prompt, making it perfect for scripts, remote administration, and automated monitoring.
Key information tasklist.exe shows you:
- Process name and ID (PID)
- Memory usage for each application
- Session numbers and status
- Services associated with each process
The tool works on Windows 10, Windows 11, and Windows Server editions. You don’t need to install anything because it ships with every Windows installation since Windows XP Professional.
How to Open and Use Tasklist.exe
Basic steps to run tasklist:
- Press Windows + R to open the Run dialog
- Type “cmd” and press Enter to open Command Prompt
- Type “tasklist” and press Enter
The command displays a table showing Image Name, PID, Session Name, Session#, and Mem Usage for every running process.
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 8 K
System 4 Services 0 116 K
chrome.exe 5432 Console 1 256,432 K
Essential Tasklist Commands You Need to Know
View All Running Processes
The simplest command shows everything running right now:
tasklist
This gives you a snapshot of your system at that exact moment.
Find a Specific Process
Looking for a particular application? Use the filter option:
tasklist /FI "IMAGENAME eq chrome.exe"
Replace “chrome.exe” with any process name. This command filters results to show only matching processes.
Check Memory Usage Details
To see which programs consume the most RAM:
tasklist /FI "MEMUSAGE gt 100000"
This displays only processes using more than 100 MB of memory. Adjust the number based on your needs.
List Services Running Under Each Process
Many Windows processes host multiple services. To see these relationships:
tasklist /SVC
This command reveals which services run inside each svchost.exe process, helping you understand what’s actually running on your system.
Advanced Tasklist.exe Techniques
Filter by Status
Show only running or not responding processes:
tasklist /FI "STATUS eq running"
tasklist /FI "STATUS eq not responding"
The second command helps identify frozen applications that need closing.
Check Processes by Username
In multi-user environments, see which user owns each process:
tasklist /V
The verbose flag displays username, CPU time, and window titles for each process.
Export Results to a File
Save your process list for later analysis:
tasklist > C:\process_list.txt
The output file opens in any text editor. This works great for comparing system states before and after changes.
Format Output as CSV
Create spreadsheet-compatible output:
tasklist /FO CSV > C:\processes.csv
Open the CSV file in Excel or Google Sheets for sorting, filtering, and analysis.
Tasklist.exe vs Task Manager: When to Use Each
Use tasklist.exe when you need to:
- Script automated monitoring tasks
- Work on remote computers through the command line
- Save process information to files
- Filter results with precise criteria
- Run commands in batch files or PowerShell scripts
Use Task Manager when you need to:
- Kill unresponsive processes quickly with a mouse click
- See real-time graphs of CPU and memory usage
- Adjust process priority levels
- View startup programs and their impact
- Access performance and app history tabs
According to Microsoft’s official documentation, tasklist.exe excels at remote management and automation, while Task Manager provides better visual feedback for interactive troubleshooting.
Common Tasklist.exe Filter Options
| Filter | Example Command | What It Does |
|---|---|---|
| IMAGENAME | tasklist /FI “IMAGENAME eq notepad.exe” | Finds processes by exact name |
| PID | tasklist /FI “PID eq 1234” | Locates process by ID number |
| MEMUSAGE | tasklist /FI “MEMUSAGE gt 50000” | Shows processes above memory threshold |
| STATUS | tasklist /FI “STATUS eq not responding” | Identifies frozen applications |
| USERNAME | tasklist /FI “USERNAME eq DOMAIN\user” | Filters by process owner |
| CPUTIME | tasklist /FI “CPUTIME gt 00:10:00” | Shows processes running over 10 minutes |
You can combine multiple filters using separate /FI parameters in one command.
Troubleshooting with Tasklist.exe
Finding Resource-Heavy Processes
When your computer slows down, identify the culprit:
tasklist /FI "MEMUSAGE gt 200000" /FO TABLE
This shows processes using more than 200 MB. Sort through results to find unexpected memory hogs.
Detecting Malware and Suspicious Processes
Check for unfamiliar process names:
tasklist /V
Compare results against known legitimate Windows processes. Malware often disguises itself with names similar to system files but with slight variations.
Identifying Multiple Instances
Some programs launch multiple processes. Count how many:
tasklist /FI "IMAGENAME eq chrome.exe"
If you see dozens of Chrome processes, you might have too many tabs open or an extension causing problems.
Remote Computer Process Checking
Monitor processes on network computers:
tasklist /S COMPUTERNAME /U USERNAME /P PASSWORD
Replace COMPUTERNAME with the target machine name and provide valid credentials. This helps IT administrators troubleshoot user issues remotely.
Creating Useful Tasklist Scripts
Automatic Process Monitoring
Save this as a batch file (monitor.bat) to check processes every 5 minutes:
@echo off
:loop
tasklist /FI "MEMUSAGE gt 500000" >> high_memory.log
timeout /t 300
goto loop
Run this script to create a log file tracking memory-intensive processes over time.
Quick Process Search
Create a batch file to quickly search for any process:
@echo off
echo Enter process name:
set /p processname=
tasklist /FI "IMAGENAME eq %processname%"
pause
Save as search_process.bat for easy access.
Understanding Tasklist Output Columns
Image Name: The executable file name of the process (example: chrome.exe, explorer.exe)
PID: Process Identifier, a unique number Windows assigns to each running process
Session Name: Shows whether the process runs in Services mode (background) or Console mode (active user session)
Session#: The session number, typically 0 for services and 1+ for user sessions
Mem Usage: Current memory consumption in kilobytes
Some columns only appear with specific flags like /V for verbose output.
Security Considerations When Using Tasklist
Tasklist.exe requires no special permissions to view processes you own. Seeing all processes, including those from other users or system processes, needs administrator rights.
Run as administrator:
- Search for “cmd” in the Start menu
- Right-click Command Prompt
- Select “Run as administrator”
- Now tasklist shows all processes systemwide
Be cautious with remote tasklist commands. Sending credentials over the network creates security risks. Use secure remote management tools like PowerShell Remoting or Remote Desktop for sensitive environments.
The tasklist.exe file itself is a legitimate Windows component. However, malware sometimes creates fake versions in other folders. The real tasklist.exe always lives in C:\Windows\System32. If you find tasklist.exe elsewhere, scan your system with antivirus software.
Combining Tasklist with Other Commands
Kill Processes Based on Tasklist Results
First find the PID:
tasklist /FI "IMAGENAME eq notepad.exe"
Then use taskkill with that PID:
taskkill /PID 1234 /F
The /F flag forces termination of stubborn processes.
Compare Before and After States
Capture process lists before and after installing software:
tasklist > before.txt
[install software]
tasklist > after.txt
Compare the two files to see what the installation added to your startup processes.
Integration with PowerShell
PowerShell users can parse tasklist output more easily:
tasklist /FO CSV | ConvertFrom-Csv | Where-Object {$_."Mem Usage" -gt "100,000 K"}
This filters for processes using over 100 MB using PowerShell’s object-based approach.
Performance Impact of Tasklist.exe
Tasklist.exe uses minimal system resources. Running the command takes a few milliseconds and consumes less than 5 MB of memory during execution.
For continuous monitoring, avoid running tasklist more than once per second. Excessive querying can slow down systems with hundreds of processes. According to TechNet documentation, spacing checks by 5-10 seconds provides good monitoring without performance hits.
The command completes faster when you use filters. Filtering reduces the amount of data Windows needs to collect and display.
Limitations and Alternatives
Tasklist.exe cannot:
- Kill or stop processes (use taskkill for that)
- Show real-time updates (each run is a snapshot)
- Display CPU usage percentage
- Set process priorities
- Show GPU usage
- Access detailed performance metrics
Consider these alternatives:
- Get-Process in PowerShell for scripting with more control
- WMIC process for WMI-based querying
- Process Explorer from Sysinternals for detailed GUI analysis
- Performance Monitor for long-term tracking with graphs
Tasklist Error Messages and Fixes
“Tasklist is not recognized as an internal or external command”
Your system path doesn’t include System32. Add C:\Windows\System32 to your PATH environment variable or use the full path: C:\Windows\System32\tasklist.exe
“Access is denied”
You need administrator rights to view all processes. Right-click Command Prompt and choose “Run as administrator.”
“The RPC server is unavailable”
This error appears with remote tasklist commands when the target computer blocks remote procedure calls. Check firewall settings and enable Remote Registry service on the target machine.
“ERROR: Invalid argument/option”
Check your filter syntax. Filters need exact format: /FI “FILTERNAME eq VALUE” with quotes around the filter expression.
Summary
Tasklist.exe gives you command-line access to process information on any Windows computer. The tool shines in scripting scenarios, remote administration, and automated monitoring tasks where graphical interfaces slow you down.
Start with basic commands to list all processes, then add filters to narrow results. Export data to files for analysis, combine with batch scripts for automation, or integrate with PowerShell for advanced processing.
Remember these core commands:
- tasklist (show all processes)
- tasklist /SVC (display services)
- tasklist /V (verbose output with usernames)
- tasklist /FI “filter” (narrow results)
- tasklist /FO CSV (export to spreadsheet)
Whether you manage networks, troubleshoot performance issues, or hunt for malware, tasklist.exe delivers the process information you need without leaving the command line.
Frequently Asked Questions
How do I find a virus using tasklist.exe?
Run tasklist /V to see all processes with details. Look for unfamiliar names, processes without a username, or executables with suspicious names similar to legitimate Windows processes (like “svch0st.exe” instead of “svchost.exe”). Check process locations by right-clicking suspicious entries in Task Manager. Real Windows processes run from System32, while malware often launches from Temp folders or user directories. Cross-reference unknown process names with online databases before assuming they’re malicious.
Can tasklist.exe show CPU usage like Task Manager?
No, tasklist.exe doesn’t display CPU percentage. It shows memory usage and CPU time (total time the process has used the CPU), but not current CPU load. For CPU monitoring from the command line, use PowerShell’s Get-Process cmdlet with the CPU property, or switch to Windows Performance Monitor for detailed CPU tracking over time. Task Manager remains the fastest way to see real-time CPU usage for each process.
What is the difference between tasklist and taskkill?
Tasklist displays information about running processes but doesn’t change anything. Taskkill terminates processes you specify by name or PID. Use tasklist first to identify the process you want to stop and get its PID, then use taskkill to end it. Example: tasklist finds “notepad.exe” with PID 1234, then taskkill /PID 1234 /F closes it. Think of tasklist as the lookup tool and taskkill as the action tool.
Why does tasklist show multiple instances of the same program?
Modern applications use multiple processes for stability and performance. Chrome, Edge, and Firefox create separate processes for each tab, extension, and the main browser. This process isolation prevents one crashed tab from taking down your entire browser. Windows itself runs many svchost.exe instances, each hosting different service groups. This design improves security and reliability. To see which services run under each svchost.exe, use tasklist /SVC.
Is it safe to end processes found with tasklist.exe?
System processes (like System, csrss.exe, or winlogon.exe) should never be terminated as they’re essential for Windows operation. Ending these crashes your system or requires a restart. User applications like browsers, Office programs, and games are safe to close. When uncertain, research the process name online before killing it. If you accidentally end a critical process, Windows typically restarts it automatically or shows an error requiring you to reboot. Always save your work before terminating unfamiliar processes.
