Get-Process
Возвращает процессы, выполняемые на локальном компьютере.
Синтаксис
Name (по умолчанию)
Get-Process
[[-Name] <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
NameWithUserName
Get-Process
[[-Name] <String[]>]
-IncludeUserName
[<CommonParameters>]
Id
Get-Process
-Id <Int32[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
IdWithUserName
Get-Process
-Id <Int32[]>
-IncludeUserName
[<CommonParameters>]
InputObject
Get-Process
-InputObject <Process[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
InputObjectWithUserName
Get-Process
-InputObject <Process[]>
-IncludeUserName
[<CommonParameters>]
Описание
Командлет Get-Process
получает процессы на локальном компьютере.
Без параметров этот командлет получает все процессы на локальном компьютере. Можно также указать определенный процесс по имени процесса или идентификатору процесса (PID) или путем отправки объекта System.Diagnostics.Process в этот командлет.
По умолчанию этот командлет возвращает объект Process , имеющий подробные сведения о процессе и поддерживающий методы, позволяющие управлять им. С параметрами можно изменить тип информации, возвращаемой этим командлетом.
- Модуль: получение сведений для каждого модуля, загруженного в процесс.
- FileVersionInfo: получение сведений о версии файла для основного модуля процесса.
Замечание
Модуль представляет собой исполняемый файл или библиотеку динамической компоновки (DLL), загруженную в процесс. Процесс содержит один или несколько модулей. Основной модуль — это модуль, используемый для первоначального запуска процесса. Дополнительные сведения см. в разделе "Класс ProcessModule".
Примеры
Пример 1. Получение списка всех выполняемых процессов на локальном компьютере
Get-Process
Эта команда получает список всех выполняемых процессов на локальном компьютере. Определение каждого столбца отображения см. в разделе NOTES .
Чтобы просмотреть все свойства объекта Process , используйте Get-Process | Get-Member
. По умолчанию PowerShell отображает определенные значения свойств с помощью таких единиц, как килобайты (K) и мегабайты (M). Фактические значения при доступе с помощью оператора доступа к члену (.
) находятся в байтах.
Пример 2. Отображение подробных сведений об одном или нескольких процессах
Get-Process winword, explorer | Format-List *
Этот конвейер отображает подробные сведения о winword
процессах и explorer
процессах на компьютере. Он использует параметр Name для указания процессов, но не указывает необязательное имя параметра. Оператор конвейера (|
) передает объекты process в Format-List
командлет, который отображает все доступные свойства (*
) и их значения для каждого объекта.
Вы также можете определить процессы по идентификаторам процессов. Например, Get-Process -Id 664, 2060
.
Пример 3. Получение всех процессов с рабочим набором больше указанного размера
Get-Process | Where-Object { $_.WorkingSet -gt 20971520 }
Get-Process | Where-Object WorkingSet -GT 20MB
Командлет Get-Process
возвращает выполняемые процессы. Выходные данные передаются Where-Object
командлету, который выбирает объекты со значением WorkingSet больше 20 971 520 байт.
В первом примере Where-Object
используется блок скрипта для сравнения свойства WorkingSet каждого объекта Process . Во втором примере Where-Object
командлет использует упрощенный синтаксис для сравнения свойства WorkingSet . В этом случае -GT
является параметром, а не оператором сравнения. Второй пример также использует числовый литерал суффикс в качестве краткой альтернативы 20971520
. В PowerShell MB
представляет мультипликатор mebibyte (MiB).
20MB
равно 20 971 520 байтам.
Пример 4. Отображение процессов на компьютере в группах на основе приоритета
$processes = Get-Process
$processes | Sort-Object { $_.PriorityClass } | Format-Table -View Priority
Эти команды отображают процессы на компьютере в группах на основе их класса приоритета. Первая команда получает все процессы на компьютере и сохраняет их в переменной $processes
.
Вторая команда передает объекты Process , хранящиеся в переменной $processes
Sort-Object
командлету, а затем Format-Table
командлету, который форматирует процессы с помощью представления "Приоритет ".
Пример 5. Добавление свойства в вывод по умолчанию "Get-Process"
Get-Process -Name pwsh | Format-Table -Property @(
@{ Name = 'NPM(K)'; Expression = { [int] ($_.NPM / 1KB) } }
@{ Name = 'PM(M)'; Expression = { [int] ($_.PM / 1MB) } }
@{ Name = 'WS(M)'; Expression = { [int] ($_.WS / 1MB) } }
@{ Name = 'CPU(s)'; Expression = { if ($_.CPU) { $_.CPU.ToString('N') } } }
'Id'
@{ Name = 'SI'; Expression = 'SessionId' }
'ProcessName'
'StartTime'
) -AutoSize
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName StartTime
------ ----- ----- ------ -- -- ----------- ---------
84 46 79 18.297 3188 1 pwsh 4/14/2025 10:40:10 AM
66 30 90 4.328 4640 1 pwsh 4/13/2025 3:33:50 PM
66 30 90 4.516 9204 1 pwsh 4/14/2025 9:54:27 AM
Этот пример извлекает процессы из локального компьютера и передает каждый объект Process командлету Format-Table
.
Format-Table
повторно создает вывод по умолчанию объекта Process с помощью сочетания имен свойств и вычисляемых свойств. Отображение включает дополнительное свойство StartTime , которое не присутствует в отображении по умолчанию.
Пример 6. Получение сведений о версии для процесса
Get-Process -Name pwsh -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
7.5.0 SHA: 99da… 7.5.0.500 C:\Program Files\PowerShell\7\pwsh.exe
Эта команда использует параметр FileVersionInfo для получения сведений о версии файла для основного pwsh
модуля процесса. Основной модуль — это файл, используемый для запуска процесса, который в данном случае является pwsh.exe
.
Чтобы использовать эту команду с процессами, которыми вы не владеете в Windows Vista и более поздних версиях Windows, необходимо запустить PowerShell с повышенными правами пользователя (запуск от имени администратора).
Пример 7. Получение модулей, загруженных с помощью указанного процесса
Get-Process -Name SQL* -Module
Эта команда использует параметр module для получения модулей, загруженных всеми процессами с именем, начинаемым с SQL
.
Чтобы использовать эту команду с процессами, которыми вы не владеете в Windows Vista и более поздних версиях Windows, необходимо запустить PowerShell с повышенными правами пользователя (запуск от имени администратора).
Пример 8. Поиск владельца процесса
Get-Process -Name pwsh -IncludeUserName
WS(M) CPU(s) Id UserName ProcessName
----- ------ -- -------- -----------
46.53 21.70 3188 DOMAIN01\user01 pwsh
Get-CimInstance -ClassName Win32_Process -Filter "name='pwsh.exe'" |
Invoke-CimMethod -MethodName GetOwner
Domain ReturnValue User PSComputerName
------ ----------- ---- --------------
DOMAIN01 0 user01
Первая команда показывает, как получить владельца процесса. Выходные данные показывают, что владелец DOMAIN01\user01
.
Второй конвейер показывает другой способ получения владельца процесса с помощью Get-CimInstance
и Invoke-CimMethod
. Класс Win32_Process с фильтром извлекает pwsh
процессы, а вызываемый GetOwner()
метод возвращает сведения о домене и пользователе процесса. Этот метод доступен только в Windows и не требует повышенных прав пользователя.
Пример 9. Используйте автоматическую переменную для идентификации процесса, в котором размещен текущий сеанс.
Get-Process -Name pwsh
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
83 96.21 105.95 4.33 1192 10 pwsh
79 83.81 117.61 2.16 10580 10 pwsh
Get-Process -Id $PID
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
83 96.21 77.53 4.39 1192 10 pwsh
Эти команды показывают, как использовать $PID
автоматическую переменную для идентификации процесса, в котором размещен текущий сеанс PowerShell. Этот метод можно использовать для различения процесса узла от других pwsh
процессов, которые могут потребоваться контролировать.
Первая команда получает все pwsh
процессы, выполняемые. Вторая команда получает pwsh
процесс, в котором размещается текущий сеанс.
Пример 10. Получение всех процессов с заголовком главного окна и их отображение в таблице
Get-Process |
Where-Object -Property MainWindowTitle |
Format-Table -Property Id, Name, MainWindowTitle -AutoSize
Этот конвейер получает все процессы с заголовком главного окна и отображают их в таблице с идентификатором процесса и именем.
MainWindowTitle является одним из многих полезных свойств типа объекта Diagnostics.Process , который Get-Process
возвращается. Чтобы просмотреть все свойства, используйте Get-Process | Get-Member
.
Параметры
-FileVersionInfo
Указывает, что этот командлет получает сведения о версии файла для программы, которая выполняется в процессе.
В Windows Vista и более поздних версиях Windows необходимо запустить PowerShell с повышенными правами пользователя (запуск от имени администратора), чтобы использовать этот параметр в процессах, которые не принадлежат.
Использование этого параметра совпадает с доступом к свойству MainModule.FileVersionInfo каждого объекта Process . При использовании этого параметра Get-Process
возвращает объект FileVersionInfo , а не объект Process . Выходные данные, созданные с помощью этого параметра, невозможно передать командлету, который ожидает объект Process , например Stop-Process
.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | FV, FVI |
Наборы параметров
Name
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
Id
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
InputObject
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Id
Указывает один или несколько процессов по идентификатору процесса (PID). Можно указать несколько идентификаторов, разделенных запятыми. Чтобы получить PID процесса, используйте Get-Process
. Чтобы получить ИДЕНТИФИКАТОР текущего сеанса PowerShell, используйте $PID
.
Свойства параметра
Тип: | Int32[] |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | ИД процесса (PID) |
Наборы параметров
Id
Position: | Named |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
IdWithUserName
Position: | Named |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-IncludeUserName
Указывает, что эта команда добавляет свойство UserName для каждого возвращаемого объекта Process .
Свойства параметра
Тип: | SwitchParameter |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
NameWithUserName
Position: | Named |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
IdWithUserName
Position: | Named |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
InputObjectWithUserName
Position: | Named |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-InputObject
Указывает один или несколько объектов Process . Используйте переменную, содержащую объекты, или команду или выражение, которое получает объекты.
Свойства параметра
Тип: | Process[] |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
InputObject
Position: | Named |
Обязательно: | True |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
InputObjectWithUserName
Position: | Named |
Обязательно: | True |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Module
Указывает, что этот командлет получает модули, загруженные процессом.
В Windows Vista и более поздних версиях Windows необходимо запустить PowerShell с повышенными правами пользователя (запуск от имени администратора), чтобы использовать этот параметр в процессах, которые не принадлежат.
Использование этого параметра совпадает с доступом к свойству Modules каждого объекта Process .
При использовании этого параметра Get-Process
возвращает объект ProcessModule , а не объект Process . Выходные данные, созданные с помощью этого параметра, невозможно передать командлету, который ожидает объект Process , например Stop-Process
.
При совместном использовании параметров Module и FileVersionInfo этот командлет возвращает объект FileVersionInfo с информацией о версии файла всех модулей.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
Name
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
Id
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
InputObject
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Name
Указывает один или несколько процессов по имени процесса. Можно указать несколько имен процессов, разделенных запятыми, и использовать подстановочные знаки.
-Name
Использование параметра является необязательным.
Свойства параметра
Тип: | String[] |
Default value: | None |
Поддерживаются подстановочные знаки: | True |
DontShow: | False |
Aliases: | Имя процесса |
Наборы параметров
Name
Position: | 0 |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
NameWithUserName
Position: | 0 |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
Process
Объекты Process можно передать в этот командлет.
Выходные данные
Process
По умолчанию этот командлет возвращает объект System.Diagnostics.Process.
FileVersionInfo
При использовании параметра FileVersionInfo этот командлет возвращает объект System.Diagnostics.FileVersionInfo .
ProcessModule
При использовании параметра Module без параметра FileVersionInfo этот командлет возвращает объект System.Diagnostics.ProcessModule .
Примечания
PowerShell включает следующие псевдонимы для Get-Process
:
- Все платформы:
gps
- Виндоус:
ps
На компьютерах под управлением 64-разрядной версии Windows 64-разрядная версия PowerShell получает основной модуль и 64-разрядные модули процесса. 32-разрядная версия PowerShell получает только 32-разрядные модули процессов.
Предупреждение
При использовании Get-Process
для получения 64-разрядного процесса в 32-разрядной версии PowerShell свойства, такие как Path
и MainModule
возвращаемый объект Process , являются $null
. Необходимо использовать 64-разрядную версию PowerShell или класс Win32_Process .
Чтобы получить сведения о процессе с удаленного компьютера, используйте командлет Invoke-Command
. Дополнительные сведения см. в разделе Invoke-Command.
В Windows можно использовать класс инструментария управления Windows (WMI) Win32_Process в PowerShell в качестве альтернативы Get-Process
. Дополнительные сведения можно найти здесь
Отображение объекта Process по умолчанию — это представление таблицы, включающее следующие столбцы.
- NPM(K): объем нестраничной памяти, используемой процессом в килобайтах.
- PM(M): объем страницы памяти, используемой процессом в мегабайтах.
- WS(M): размер рабочего набора процесса в мегабайтах. Рабочий набор состоит из страниц памяти, на которые недавно ссылается процесс.
- ЦП: время процессора, используемое для всех процессоров в секундах.
- идентификатор: идентификатор процесса (PID) процесса.
- SI: идентификатор сеанса процесса.
- ProcessName: имя процесса.
Вы можете использовать встроенные альтернативные представления для объектов Process , доступных с Format-Table
помощью таких объектов, как StartTime и Priority. Вы также можете создавать собственные представления.
Описание всех доступных элементов объекта Process см. в разделе "Свойства процесса " и "Методы процесса".