Get-Process
Возвращает процессы, выполняемые на локальном компьютере или удаленном компьютере.
Синтаксис
Name (По умолчанию)
Get-Process
[[-Name] <String[]>]
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
NameWithUserName
Get-Process
[[-Name] <String[]>]
[-IncludeUserName]
[<CommonParameters>]
IdWithUserName
Get-Process
-Id <Int32[]>
[-IncludeUserName]
[<CommonParameters>]
Id
Get-Process
-Id <Int32[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
InputObjectWithUserName
Get-Process
-InputObject <Process[]>
[-IncludeUserName]
[<CommonParameters>]
InputObject
Get-Process
-InputObject <Process[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<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 , хранящиеся в переменной $processesSort-Object командлету, а затем Format-Table командлету, который форматирует процессы с помощью представления "Приоритет ".
Представление "Приоритет" и другие представления определяются в .ps1xml файлах форматирования в домашнем каталоге PowerShell ($PSHOME).
Пример 5. Добавление свойства в вывод по умолчанию "Get-Process"
Get-Process -Name powershell | Format-Table -Property @(
'Handles'
@{ Name = 'NPM(K)'; Expression = { [int] ($_.NPM / 1KB) } }
@{ Name = 'PM(K)'; Expression = { [int] ($_.PM / 1KB) } }
@{ Name = 'WS(K)'; Expression = { [int] ($_.WS / 1KB) } }
@{ Name = 'CPU(s)'; Expression = { if ($_.CPU) { $_.CPU.ToString('N') } } }
'Id'
@{ Name = 'SI'; Expression = 'SessionId' }
'ProcessName'
'StartTime'
) -AutoSize
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName StartTime
------- ------ ----- ----- ------ -- -- ----------- ---------
655 34 69424 83424 2.20 4240 1 powershell 4/14/2025 10:40:10 AM
572 36 68768 57260 7.41 4968 1 powershell 4/13/2025 3:33:50 PM
405 26 38144 30340 1.80 8776 1 powershell 4/14/2025 9:54:27 AM
Этот пример извлекает процессы из локального компьютера и передает каждый объект Process командлету Format-Table .
Format-Table повторно создает вывод по умолчанию объекта Process с помощью сочетания имен свойств и вычисляемых свойств. Отображение включает дополнительное свойство StartTime , которое не присутствует в отображении по умолчанию.
Пример 6. Получение сведений о версии для процесса
Get-Process -Name powershell -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
10.0.19041.320 10.0.19041.32... C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Эта команда использует параметр FileVersionInfo для получения сведений о версии файла для основного powershell модуля процесса. Основной модуль — это файл, используемый для запуска процесса, который в данном случае является powershell.exe.
Чтобы использовать эту команду с процессами, которыми вы не владеете в Windows Vista и более поздних версиях Windows, необходимо запустить PowerShell с повышенными правами пользователя (запуск от имени администратора).
Пример 7. Получение модулей, загруженных с помощью указанного процесса
Get-Process -Name SQL* -Module
Эта команда использует параметр module для получения модулей, загруженных всеми процессами с именем, начинаемым с SQL.
Чтобы использовать эту команду с процессами, которыми вы не владеете в Windows Vista и более поздних версиях Windows, необходимо запустить PowerShell с повышенными правами пользователя (запуск от имени администратора).
Пример 8. Поиск владельца процесса
Get-Process -Name powershell -IncludeUserName
Handles WS(K) CPU(s) Id UserName ProcessName
------- ----- ------ -- -------- -----------
782 132080 2.08 2188 DOMAIN01\user01 powershell
Get-CimInstance -ClassName Win32_Process -Filter "name='powershell.exe'" |
Invoke-CimMethod -MethodName GetOwner
Domain ReturnValue User PSComputerName
------ ----------- ---- --------------
DOMAIN01 0 user01
Первая команда показывает, как получить владельца процесса. Параметр IncludeUserName требует повышенных прав пользователя (запуск от имени администратора). Выходные данные показывают, что владелец DOMAIN01\user01.
Второй конвейер показывает другой способ получения владельца процесса с помощью Get-CimInstance и Invoke-CimMethod. Класс Win32_Process с фильтром извлекает powershell процессы, а вызываемый GetOwner() метод возвращает сведения о домене и пользователе процесса. Этот метод не требует повышенных прав пользователя.
Пример 9. Используйте автоматическую переменную для идентификации процесса, в котором размещен текущий сеанс.
Get-Process -Name powershell
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
561 44 47564 40740 6.48 2604 1 powershell
642 40 72040 24372 23.53 3576 1 powershel
Get-Process -Id $PID
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
647 40 72464 30716 23.67 3576 1 powershell
Эти команды показывают, как использовать $PID автоматическую переменную для идентификации процесса, в котором размещен текущий сеанс PowerShell. Этот метод можно использовать для различения процесса узла от других powershell процессов, которые могут потребоваться контролировать.
Первая команда получает все powershell процессы, выполняемые. Вторая команда получает powershell процесс, в котором размещается текущий сеанс.
Пример 10. Получение всех процессов с заголовком главного окна и их отображение в таблице
Get-Process |
Where-Object -Property MainWindowTitle |
Format-Table -Property Id, Name, MainWindowTitle -AutoSize
Этот конвейер получает все процессы с заголовком главного окна и отображают их в таблице с идентификатором процесса и именем.
MainWindowTitle является одним из многих полезных свойств типа объекта Diagnostics.Process , который Get-Process возвращается. Чтобы просмотреть все свойства, используйте Get-Process | Get-Member.
Параметры
-ComputerName
Указывает компьютеры, для которых этот командлет получает запущенные процессы. По умолчанию используется локальный компьютер.
Укажите имя NetBIOS, IP-адрес или полное доменное имя (FQDN) одного или нескольких компьютеров. Чтобы указать локальный компьютер, используйте имя компьютера, точку (.или localhost).
Этот параметр не зависит от удаленного взаимодействия Windows PowerShell. Параметр ComputerName этого командлета можно использовать, даже если компьютер не настроен для выполнения удаленных команд.
Свойства параметров
| Тип: | String[] |
| Default value: | Local computer |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | CN |
Наборы параметров
Name
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
Id
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
InputObject
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-FileVersionInfo
Указывает, что этот командлет получает сведения о версии файла для программы, которая выполняется в процессе.
В Windows Vista и более поздних версиях Windows необходимо запустить PowerShell с повышенными правами пользователя (запуск от имени администратора), чтобы использовать этот параметр в процессах, которые не принадлежат.
Параметры FileVersionInfo и ComputerName нельзя использовать вместе.
Чтобы получить сведения о версии файла для процесса на удаленном компьютере, используйте командлет Invoke-Command.
Использование этого параметра совпадает с доступом к свойству 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) |
Наборы параметров
IdWithUserName
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
Id
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-IncludeUserName
Указывает, что эта команда добавляет свойство UserName для каждого возвращаемого объекта Process .
Для использования этого параметра необходимо запустить PowerShell с повышенными правами пользователя (запуск от имени администратора).
Свойства параметров
| Тип: | 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 |
Наборы параметров
InputObjectWithUserName
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
InputObject
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Module
Указывает, что этот командлет получает модули, загруженные процессом.
В Windows Vista и более поздних версиях Windows необходимо запустить PowerShell с повышенными правами пользователя (запуск от имени администратора), чтобы использовать этот параметр в процессах, которые не принадлежат.
Чтобы получить модули, загруженные процессом на удаленном компьютере, используйте Invoke-Command командлет.
Использование этого параметра совпадает с доступом к свойству 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 .
Примечания
Windows PowerShell включает следующие псевдонимы для Get-Process:
gpsps
На компьютерах под управлением 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 (WMI Win32_Process ) можно использовать в PowerShell в качестве альтернативы Get-Process. Дополнительные сведения можно найти здесь
Отображение объекта Process по умолчанию — это представление таблицы, включающее следующие столбцы.
- обрабатывает: количество открытых дескрипторов.
- NPM(K): объем нестраничной памяти, используемой процессом в килобайтах.
- PM(K): объем страницы памяти, используемой процессом в килобайтах.
- WS(K): размер рабочего набора процесса в килобайтах. Рабочий набор состоит из страниц памяти, на которые недавно ссылается процесс.
- ЦП: время процессора, используемое для всех процессоров в секундах.
- идентификатор: идентификатор процесса (PID) процесса.
- SI: идентификатор сеанса процесса.
- ProcessName: имя процесса.
Вы можете использовать встроенные альтернативные представления для объектов Process , доступных с Format-Tableпомощью таких объектов, как StartTime и Priority. Вы также можете создавать собственные представления.
Описание всех доступных элементов объекта Process см. в разделе "Свойства процесса " и "Методы процесса".