Get Process - PowerShell
Overview
Get-Process provides detailed information about running processes on the local or remote computer. It allows users to monitor system performance, identify resource-intensive processes, and troubleshoot issues related to runaway processes.
Syntax
Get-Process [[-Name] <string[]>] [-Id <int[]>] [-ComputerName <string[]>]
[-SessionId <int[]>] [-ExactMatch] [-Module <string[]>] [-ExcludeModule <string[]>]
[-IncludeUntitled] [-NoTitle] [-WorkingSet] [-PagedMemorySize]
[-PagedSystemMemorySize] [-NonPagedSystemMemorySize] [-VirtualMemorySize]
[-PrivateMemorySize] [-ProcessMemorySize] [-PassThru] [-Credential <PSCredential>]
[-ErrorAction <ActionPreference>] [-ErrorVariable <string>]
[-InformationAction <ActionPreference>] [-InformationVariable <string>]
[-OutVariable <string>] [-OutBuffer <int>] [-PipelineVariable <string>]
[-ThrottleLimit <int>] [-AsJob] [-JobName <string>]
Options/Flags
- -Name: Specifies the name(s) of the process(es) to return.
- -Id: Specifies the ID(s) of the process(es) to return.
- -ComputerName: Specifies the name(s) of the remote computer(s) to retrieve processes from.
- -SessionId: Specifies the ID(s) of the session(s) to retrieve processes from.
- -ExactMatch: When specified, only processes with exact name or ID matches are returned.
- -Module: Specifies the name(s) of modules to include processes loaded into.
- -ExcludeModule: Specifies the name(s) of modules to exclude processes loaded into.
- -IncludeUntitled: Includes processes without a title in the results.
- -NoTitle: Excludes processes without a title from the results.
- -WorkingSet: Retrieves the process’s working set size (cached memory).
- -PagedMemorySize: Retrieves the process’s amount of paged memory.
- -PagedSystemMemorySize: Retrieves the process’s amount of paged system memory.
- -NonPagedSystemMemorySize: Retrieves the process’s amount of non-paged system memory.
- -VirtualMemorySize: Retrieves the process’s virtual memory size.
- -PrivateMemorySize: Retrieves the process’s private memory size.
- -ProcessMemorySize: Retrieves the process’s total memory size.
- -PassThru: Returns the Process objects directly instead of formatting them for display.
- -Credential: Specifies credentials to use when connecting to remote computers.
- -ErrorAction: Specifies the action to perform when an error occurs.
- -ErrorVariable: Stores errors encountered during the operation.
- -InformationAction: Specifies the action to perform for informational messages.
- -InformationVariable: Stores informational messages.
- -OutVariable: Stores the results of the command in a variable.
- -OutBuffer: Limits the number of results stored in memory before displaying them.
- -PipelineVariable: Stores the results of the command in a variable for use in pipeline commands.
- -ThrottleLimit: Limits the number of concurrent operations performed.
- -AsJob: Runs the command as a background job.
- -JobName: Specifies a name for the job created by the command.
Examples
Get all running processes:
Get-Process
Get processes by name:
Get-Process -Name notepad.exe
Get processes on a remote computer:
Get-Process -ComputerName server01
Get processes loaded into a specific module:
Get-Process -Module PowerShell
Get detailed memory information for processes:
Get-Process -WorkingSet -PagedMemorySize -PagedSystemMemorySize -NonPagedSystemMemorySize -VirtualMemorySize -PrivateMemorySize -ProcessMemorySize
Common Issues
- Access denied: Make sure you have sufficient privileges to access process information on the target computer.
- Invalid process name or ID: Verify that the specified name or ID is correct and matches a running process.
- Process not found: The process you’re trying to retrieve might have ended before the command could execute.
Integration
Get-Process can be used in combination with other PowerShell commands to perform advanced tasks. For instance:
- Find child processes of a specific process:
Get-Process -Name notepad.exe | Get-ChildItem -Recurse
- Stop a process:
Stop-Process -Id (Get-Process -Name notepad.exe).Id
Related Commands
- Start-Process: Start a new process.
- Stop-Process: Stop a running process.
- Get-ChildItem: Retrieve information about files and directories, including processes.