Get-Process
Возвращает процессы, выполняемые на локальном компьютере.
Синтаксис
Get-Process
[[-Name] <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
[[-Name] <String[]>]
-IncludeUserName
[<CommonParameters>]
Get-Process
-Id <Int32[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
-Id <Int32[]>
-IncludeUserName
[<CommonParameters>]
Get-Process
-InputObject <Process[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
-InputObject <Process[]>
-IncludeUserName
[<CommonParameters>]
Описание
Командлет Get-Process
получает процессы на локальном или удаленном компьютере.
Без параметров этот командлет получает все процессы на локальном компьютере. Можно также указать конкретный процесс по имени процесса или идентификатору процесса (PID) или передать объект процесса через конвейер в этот командлет.
По умолчанию этот командлет возвращает объект процесса, имеющий подробные сведения о процессе и поддерживающий методы, позволяющие запускать и останавливать процесс. Можно также использовать параметры командлета Get-Process
, чтобы получить сведения о версии файла для программы, которая выполняется в процессе, и получить модули, загруженные процессом.
Примеры
Пример 1. Получение списка всех активных процессов на локальном компьютере
Get-Process
Эта команда получает список всех активных процессов, выполняемых на локальном компьютере. Определение каждого столбца см. в разделе Заметки.
Пример 2. Получение всех доступных данных об одном или нескольких процессах
Get-Process winword, explorer | Format-List *
Эта команда получает все доступные данные о процессах Winword и Explorer на компьютере. Он использует параметр Name для указания процессов, но не указывает необязательное имя параметра. Оператор конвейера (|
) передает данные в командлет Format-List
, который отображает все доступные свойства (*
) объектов процесса Winword и Explorer.
Вы также можете определить процессы по идентификаторам процессов. Например, Get-Process -Id 664, 2060
.
Пример 3. Получение всех процессов с рабочим набором больше указанного размера
Get-Process | Where-Object {$_.WorkingSet -gt 20000000}
Эта команда получает все процессы, имеющие рабочий набор, превышающий 20 МБ. Он использует командлет Get-Process
для получения всех выполняемых процессов. Оператор конвейера (|
) передает объекты процесса в командлет Where-Object
, который выбирает только объект со значением более 20 000 000 000 байт для свойства WorkingSet.
WorkingSet является одним из многих свойств объектов процесса. Чтобы просмотреть все свойства, введите Get-Process | Get-Member
. По умолчанию значения всех свойств суммы находятся в байтах, даже если по умолчанию отображаются их в килобайтах и мегабайтах.
Пример 4. Перечисление процессов на компьютере в группах на основе приоритета
$A = Get-Process
$A | Get-Process | Format-Table -View priority
Эти команды перечисляют процессы на компьютере в группах на основе их класса приоритета. Первая команда получает все процессы на компьютере, а затем сохраняет их в переменной $A
.
Вторая команда передает объект Process, хранящийся в переменной $A
, командлету Get-Process
, а затем командлету Format-Table
, который форматирует процессы с помощью представления Priority.
Представление приоритета
Пример 5. Добавление свойства в стандартное отображение выходных данных Get-Process
Get-Process pwsh | Format-Table `
@{Label = "NPM(K)"; Expression = {[int]($_.NPM / 1024)}},
@{Label = "PM(K)"; Expression = {[int]($_.PM / 1024)}},
@{Label = "WS(K)"; Expression = {[int]($_.WS / 1024)}},
@{Label = "VM(M)"; Expression = {[int]($_.VM / 1MB)}},
@{Label = "CPU(s)"; Expression = {if ($_.CPU) {$_.CPU.ToString("N")}}},
Id, MachineName, ProcessName -AutoSize
NPM(K) PM(K) WS(K) VM(M) CPU(s) Id MachineName ProcessName
------ ----- ----- ----- ------ -- ----------- -----------
6 23500 31340 142 1.70 1980 . pwsh
6 23500 31348 142 2.75 4016 . pwsh
27 54572 54520 576 5.52 4428 . pwsh
В этом примере извлекаются процессы с локального компьютера и удаленного компьютера (S1). Извлекаемые процессы передаются в команду Format-Table
, которая добавляет свойство MachineName в стандартное отображение выходных данных Get-Process
.
Пример 6. Получение сведений о версии для процесса
Get-Process pwsh -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
6.1.2 6.1.2 C:\Program Files\PowerShell\6\pwsh.exe
Эта команда использует параметр FileVersionInfo для получения сведений о версии файла pwsh.exe
, который является основным модулем для процесса PowerShell.
Чтобы выполнить эту команду с процессами, которые не принадлежат в Windows Vista и более поздних версиях Windows, необходимо открыть PowerShell с помощью параметра Запустить от имени администратора.
Пример 7. Получение модулей, загруженных с помощью указанного процесса
Get-Process SQL* -Module
Эта команда использует параметр модуля SQL
.
Чтобы запустить эту команду в Windows Vista и более поздних версиях Windows с процессами, которыми вы не владеете, необходимо запустить PowerShell с параметром Запуска от имени администратора.
Пример 8. Поиск владельца процесса
Get-Process pwsh -IncludeUserName
Handles WS(K) CPU(s) Id UserName ProcessName
------- ----- ------ -- -------- -----------
782 132080 2.08 2188 DOMAIN01\user01 pwsh
Эта команда показывает, как найти владельца процесса.
В Windows параметр IncludeUserName требует повышенных прав пользователя (запуск от имениадминистратора).
Выходные данные показывают, что владелец Domain01\user01
.
Пример 9. Используйте автоматическую переменную для идентификации процесса, в котором размещен текущий сеанс.
Get-Process 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. Этот метод можно использовать для различения процесса узла от других процессов PowerShell, которые могут потребоваться остановить или закрыть.
Первая команда получает все процессы PowerShell в текущем сеансе.
Вторая команда получает процесс PowerShell, на котором размещен текущий сеанс.
Пример 10. Получение всех процессов с заголовком главного окна и их отображение в таблице
Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize
Эта команда получает все процессы с заголовком главного окна, и отображает их в таблице с идентификатором процесса и именем процесса.
Свойство mainWindowTitle Get-Process
в командлет Get-Member
Get-Process | Get-Member
.
Параметры
-FileVersionInfo
Указывает, что этот командлет получает сведения о версии файла для программы, которая выполняется в процессе.
В Windows Vista и более поздних версиях Windows необходимо открыть PowerShell с помощью параметра запуска от имени администратора использовать этот параметр для процессов, которые не принадлежат.
Чтобы получить сведения о версии файла для процесса на удаленном компьютере, используйте командлет Invoke-Command
.
Использование этого параметра эквивалентно получению свойства MainModule.FileVersionInfo каждого объекта процесса. При использовании этого параметра Get-Process
возвращает объект FileVersionInfoSystem.Diagnostics.FileVersionInfo, а не объект процесса. Таким образом, вы не можете передать выходные данные команды командлету, который ожидает объект процесса, например Stop-Process
.
Тип: | SwitchParameter |
Aliases: | FV, FVI |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Id
Указывает один или несколько процессов по идентификатору процесса (PID). Чтобы указать несколько идентификаторов, используйте запятые для разделения идентификаторов. Чтобы найти ИДЕНТИФИКАТОР процесса, введите Get-Process
.
Тип: | Int32[] |
Aliases: | PID |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-IncludeUserName
Указывает, что значение UserName объекта процесса
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-InputObject
Указывает один или несколько объектов процесса. Введите переменную, содержащую объекты, или введите команду или выражение, которое получает объекты.
Тип: | Process[] |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Module
Указывает, что этот командлет получает модули, загруженные процессами.
В Windows Vista и более поздних версиях Windows необходимо открыть PowerShell с помощью параметра запуска от имени администратора использовать этот параметр для процессов, которые не принадлежат.
Чтобы получить модули, загруженные процессом на удаленном компьютере, используйте командлет Invoke-Command
.
Этот параметр эквивалентен получению свойства Modules каждого объекта процесса. При использовании этого параметра этот командлет возвращает объект ProcessModuleSystem.Diagnostics.ProcessModule, а не объект процесса. Таким образом, вы не можете передать выходные данные команды командлету, который ожидает объект процесса, например Stop-Process
.
При использовании параметров модуля и FileVersionInfo в одной команде этот командлет возвращает объект FileVersionInfo со сведениями о версии файла всех модулей.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Name
Указывает один или несколько процессов по имени процесса. Можно ввести несколько имен процессов (разделенных запятыми) и использовать подстановочные знаки. Имя параметра (Name
) является необязательным.
Тип: | String[] |
Aliases: | ProcessName |
Position: | 0 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
Входные данные
Объект процесса можно передать в этот командлет.
Выходные данные
System.Diagnostics.Process, System.Diagnostics.FileVersionInfo, System.Diagnostics.ProcessModule
По умолчанию этот командлет возвращает объект System.Diagnostics.Process. Если вы используете параметр FileVersionInfo
Примечания
- Вы также можете ссылаться на этот командлет по встроенным псевдонимам,
ps
иgps
. Дополнительные сведения см. в about_Aliases. - На компьютерах с 64-разрядной версией Windows 64-разрядная версия PowerShell получает только 64-разрядные модули процессов, а 32-разрядная версия PowerShell получает только 32-разрядные модули процессов.
- Свойства и методы инструментария управления Windows (WMI Win32_Process) можно использовать в PowerShell. Дополнительные сведения см. в
Get-WmiObject
и пакете SDK WMI. - Отображение процесса по умолчанию — это таблица, содержащая следующие столбцы. Описание всех свойств объектов процесса см. в разделе Свойства процесса.
- обрабатывает: количество открытых дескрипторов.
- NPM(K): объем нестраничной памяти, используемой процессом в килобайтах.
- PM(K): объем страницы памяти, используемой процессом в килобайтах.
- WS(K): размер рабочего набора процесса в килобайтах. Рабочий набор состоит из страниц памяти, на которые недавно ссылается процесс.
- vm(M): объем виртуальной памяти, используемой процессом в мегабайтах. Виртуальная память включает в себя хранилище в файлах разбиения по страницам на диске.
- ЦП: время процессора, используемое для всех процессоров в секундах.
- идентификатор: идентификатор процесса (PID) процесса.
- ProcessName: имя процесса. Описание концепций, связанных с процессами, см. в разделе "Глоссарий" в Центре справки и поддержки и справке по диспетчеру задач.
- Кроме того, можно использовать встроенные альтернативные представления процессов, доступных с
Format-Table
, например StartTime и Priority, а также создавать собственные представления.