Powershell. Get process owner.

Powershell-logo

Get process owner. Получаем владельца процессов в Powershell.

Небольшая статья о том как с помощью Powershell получить список процессов и их владельцев на локальном и удаленном компьютере разными способами.

На написание данной статьи меня натолкнула проблема с периодическим повышенным потреблением оперативной памяти на некоторых серверах. Доходило до того, что к ним невозможно было даже подключиться по RDP. Но с помощью Powershell можно было вычислить «пожирателей» ресурсов. В процессе изучения возможности получения информации о владельце процессов выяснилось, что получить ее можно несколькими способами: Get-Process, Get-WmiObject и Get-CimInstance. Поскольку меня интересовали процессы, потребляющие больше всего памяти, в статье будут примеры с сортировкой по этому параметру. Все действия, описанные в статье, выполнялись в оболочке, запущенной от имени Администратора.

Первый способ. Get-Process.

Получение списка процессов и их владельцев на локальном компьютере не представляет сложности, особенно с пятой(если не ошибаюсь) версии Powershell. Для того чтобы получить список всех процессов используем командлет Get-Process с параметром IncludeUsername.

Для получения 10 процессов с наибольшим потреблением памяти команда будет выглядеть так:

Еще:  Как установить windows с флешки

Ну и отформатированный вывод только с нужными свойствами:

Для получения списка процессов на удаленном компьютере нужно прибегнуть к помощи командлета Invoke-Command:

При необходимости укажите учетные данные при помощи параметра -Credential.

Второй способ. Get-WmiObject.

При использовании данного способа для локального компьютера команда выглядит так:

Еще:  Windows 10 скачать бесплатно

а для удаленного так:

Третий способ. Get-CIMInstance.

Ну и по третьему методу совсем коротенько. Укажу код только для получения информации с удаленного компьютера. Вся разница между удаленным и локальным выполнением команд заключается только в параметрах -ComputerName и -Credential при необходимости. Итак код:

Переменную $processes можно не объявлять, а просто продолжить конвейер команд.

На этом всё, надеюсь статья поможет кому-то в получении списка процессов и особенно их владельцев. Естественно вы можете сортировать процессы  по другим параметрам, выбирать другое количество процессов и т.д.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *