Поделиться через


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 и проводника на компьютере. Он использует параметр Name для указания процессов, но не указывает необязательное имя параметра. Оператор конвейера (|) передает данные командлету Format-List , который отображает все доступные свойства (*) объектов Winword и Обозреватель процесса.

Процессы также можно определить по идентификаторам (PID). Например, Get-Process -Id 664, 2060.

Пример 3. Получение всех процессов с рабочим набором, превышающим указанный размер

Get-Process | Where-Object {$_.WorkingSet -gt 20000000}

Эта команда возвращает все процессы, размер рабочего набора которых превышает 20 МБ. Для получения всех запущенных процессов используется Get-Process командлет . Оператор конвейера (|) передает объекты процесса командлету Where-Object , который выбирает только объект со значением более 20 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 в командлет , который форматирует процессы с помощью представления Приоритет .

Представление Приоритет и другие представления определяются в файлах формата PS1XML в домашнем каталоге PowerShell ($pshome).

Пример 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, ProcessName, StartTime -AutoSize

NPM(K)  PM(K)  WS(K)   VM(M) CPU(s)    Id ProcessName StartTime
------  -----  -----   ----- ------    -- ----------- ---------
   143 239540 259384 2366162 22.73  12720 pwsh        12/5/2022 3:21:51 PM
   114  61776 104588 2366127 11.45  18336 pwsh        12/5/2022 7:30:53 AM
   156  77924  82060 2366185 10.47  18812 pwsh        12/5/2022 7:30:52 AM
    85  48216 115192 2366074 1.14   24428 pwsh        12/8/2022 9:14:15 AM

В этом примере извлекаются процессы с локального компьютера. Полученные процессы передаются по конвейеру в Format-Table команду, которая добавляет свойство StartTime к стандартному 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 получения сведений о версии файла, который является модулем main для процесса PowerShell.

Чтобы выполнить эту команду с процессами, которые не принадлежат в Windows Vista и более поздних версиях Windows, необходимо открыть PowerShell с параметром Запуск от имени администратора .

Пример 7. Получение модулей, загруженных с помощью указанного процесса

Get-Process SQL* -Module

Эта команда использует параметр 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. Получение всех процессов с main заголовком окна и их отображение в таблице

Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize

Эта команда возвращает все процессы с заголовком главного окна и отображает их в таблице, где также указаны идентификатор и имя процесса.

Свойство mainWindowTitle является лишь одним из многих полезных свойств возвращаемого объекта Get-ProcessProcess. Чтобы просмотреть все свойства, передайте результаты Get-Process команды в Get-Member командлет Get-Process | Get-Member.

Параметры

-FileVersionInfo

Указывает, что этот командлет получает сведения о версии файла для программы, которая выполняется в процессе.

В Windows Vista и более поздних версиях Windows необходимо открыть PowerShell с параметром Запуск от имени администратора , чтобы использовать этот параметр в процессах, которыми вы не владеете.

Использование этого параметра эквивалентно получению свойства MainModule.FileVersionInfo каждого объекта процесса. При использовании этого параметра Get-Process возвращает объект FileVersionInfoSystem.Diagnostics.FileVersionInfo, а не объект процесса. Таким образом, вы не можете передать выходные данные команды в командлет, который ожидает объект процесса, например Stop-Process.

Type:SwitchParameter
Aliases:FV, FVI
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Указывает один или несколько процессов по идентификатору процесса (PID). При указании нескольких идентификаторов разделяйте их запятыми. Чтобы найти ИДЕНТИФИКАТОР процесса, введите Get-Process.

Type:Int32[]
Aliases:PID
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-IncludeUserName

Указывает, что значение UserName объекта Process возвращается с результатами команды .

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Указывает один или несколько объектов процесса. Введите переменную, которая содержит объекты, или команду или выражение, которое возвращает объекты.

Type:Process[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Module

Указывает, что этот командлет получает модули, загруженные процессами.

В Windows Vista и более поздних версиях Windows необходимо открыть PowerShell с параметром Запуск от имени администратора , чтобы использовать этот параметр в процессах, которыми вы не владеете.

Этот параметр эквивалентен получению свойства Modules каждого объекта процесса. При использовании этого параметра этот командлет возвращает объект ProcessModuleSystem.Diagnostics.ProcessModule, а не объект процесса. Таким образом, вы не можете передать выходные данные команды в командлет, который ожидает объект процесса, например Stop-Process.

При использовании параметров Module и FileVersionInfo в одной команде этот командлет возвращает объект FileVersionInfo со сведениями о версии файла всех модулей.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Указывает один или несколько процессов по имени процесса. Можно ввести несколько имен процессов (разделенных запятыми) и использовать подстановочные знаки. Имя параметра (Name) является необязательным.

Type:String[]
Aliases:ProcessName
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

Входные данные

Process

Объект процесса можно передать в этот командлет по конвейеру.

Выходные данные

Process

По умолчанию этот командлет возвращает объект System.Diagnostics.Process .

FileVersionInfo

При использовании параметра FileVersionInfo этот командлет возвращает объект FileVersionInfo .

ProcessModule

При использовании параметра Module без параметра FileVersionInfo этот командлет возвращает объект ProcessModule .

Примечания

PowerShell включает следующие псевдонимы для Get-Process:

  • Для всех платформ.
    • gps
  • Windows:
    • ps

На компьютерах под управлением 64-разрядной версии Windows 64-разрядная версия PowerShell получает только 64-разрядные модули процессов, а 32-разрядная версия PowerShell — только 32-разрядные модули процессов.

Чтобы получить сведения о процессе с удаленного компьютера, используйте Invoke-Command командлет . Дополнительные сведения см. в разделе Invoke-Command.

В PowerShell можно использовать свойства и методы Win32_Process объекта инструментария управления Windows (WMI). Дополнительные сведения см. в разделе Win32_Process.

По умолчанию процесс отображается как таблица, которая содержит следующие столбцы. Описание всех свойств объектов процесса см. в разделе Свойства процесса.

  • Дескрипторы: количество дескрипторов, открытых процессом.
  • NPM(K): объем памяти без страницы, используемой процессом, в килобайтах.
  • PM(K): объем доступной для страницы памяти, используемой процессом, в килобайтах.
  • WS(K): размер рабочего набора процесса в килобайтах. Рабочий набор состоит из страниц памяти, на которые недавно ссылался процесс.
  • VM(M): объем виртуальной памяти, используемой процессом, в мегабайтах. Виртуальная память используется для хранения файлов подкачки на диске.
  • ЦП: количество процессорного времени, которое процесс использовал на всех процессорах, в секундах.
  • Идентификатор: идентификатор процесса (PID) процесса.
  • ProcessName: имя процесса. Описание понятий, связанных с процессами, см. в центре справки и поддержки, а также в справке диспетчера задач.

Вы также можете использовать встроенные альтернативные представления процессов, доступные с Format-Tableпомощью , например StartTime и Priority, и создавать собственные представления.