get process powershell параметры

Как работать с процессами через Powershell Get-Process

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Командлет Powershell Get-Process возвращает все процессы запущенные на локальном компьютере. Команда пишется так:

Мы так же можем посмотреть так же процессы, запущенные на удаленном компьютере:

Навигация по посту

Если мы не знаем имени, можно добавить * :

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

При этом если у вас запущено несколько процессов с этим именем, вернуться все.

Расшифрую заголовки:

Попробуем преобразовать значение из килобайтов в мегабайты:

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Где:
-Select-Object обозначаем столбцы, которые хотим вывести.

Как вывести детальную информацию через Powershell Get-Process

Что бы вывести всю возможную информацию два варианта. Это либо вывести объект в виде листа:

Либо можно объявить в переменную, получить все имена свойств и вызывать их по отдельности:

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Под такой командой powershell я могу узнать имя, которое пишется в окошке:

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Так мы выведем все запущенные процессы, у которых есть GUI:

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Как отфильтровать процессы по утилизации в Powershell

Так мы увидим процессы, которые используют больше 67 Мб в памяти с дополнительной информацией о приоритете:

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Таким командлетом мы получи информацию по одному процессу, у которого самое высокое значение CPU. Из свойств этого объекта выбран ID, Имя, CPU и время запуска.

Запуск и остановка процессов через Powershell

Мы можем остановить любой процесс. Например таким образом мы остановим все процессы, которые не отвечают (зависли):

Конечно мы можем остановить процесс по идентификатору или имени:

Таким командлетом мы остановим самый старый процесс:

Запуск экземпляра и его завершение через 5 секунд:

Все остальные команды можно узнать с помощью:

Справки с вариантами использования команд powershell:

Источник

Как работать с процессами в Powershell используя Get и Start-Proccess

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Мы получим следующий вывод:

Таких команд и вариантов их использования очень много. Например мы можем работать с процессами через WMI или использовать их в связке с мониторингом сетевых подключений через Get-NetTCPConnection.

Получив список процессов в Powershell можно увидеть что значения отображаются в Кб:

Изменить это можно через выражения:

В скрипте выше будут выводиться 5 свойств, но их намного больше. Посмотреть возможные свойства можно так:

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Каждое это свойство можно вызвать так:

Можно вызвать все свойства всех процессов или по одному выбранному:

Методы полезны тем, что ими можно воспользоваться не прибегая к дополнительным командам. Для примера так мы можем остановить процесс notepad (блокнот) тремя разными способами:

При получении списка процессов есть параметр, который выводит путь откуда запущен процесс и версию файла:

В варианте выше у нас будет много не критичных ошибок:

Или запросить информацию о конкретном процессе:

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Ключ FileVersionInfo это три свойства: Product, FileVersion и Path каждый из которых можно вывести отдельно. Получим процессы в Powershell со свойством времени запуска и отсортируем их:

Если нужно выяснить когда и кто запустил процесс нужно добавить параметр IncludeUserName. В моем примере это два процесса:

Эти же команды можно выполнять удаленно. Во всех командах Powershell, где есть ключ ComputerName можно указать минимум один удаленный компьютер:

Запуск процессов с Powershell Start-Process

На примере запуска блокнота команда выполняется так:

Если исполняемый файл находится в другом месте нужно указать путь:

Если в программа может принимать аргументы их так же можно добавить:

По умолчанию окно процесса разворачивается. Если хотите запустить свернутым, то добавьте ключ WindowStyle:

Ключ WindowStyle принимает 4 значения:

Добавив ключ NoNewWindow, в случае с tracert, команда выполнится в текущем окне:

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметрыЕсли мы запускаем процесс, который подразумевает вывод, но не хотим открывать окно программы, то нам понадобится перенаправить вывод команд. Для этого есть два ключа:

Воспользоваться этими ключами можно так:

Если нужно открыть файл в определенной программе, то это делается так:

Отмечу, что ни одна команда PS не позволяет запускать процессы в интерактивном сеансе пользователя (например открыть пользователю Excel). Если вы хотите использовать такой метод, то вам нужно использовать psexec от SysInternals либо помещать задачи в планировщик и выполнять оттуда.

Пример по работе с процессами в Powershell

Директории, откуда работает основная часть программ относятся к Windows и Program Files. Работа программ из Application Data, например, всегда подозрительна. Мы можем мониторить запуск процессов из этой директории. Нам нужно объявить переменные с путями, которые не будут вызывать подозрений и проверять путь процессов на вхождение:

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Обратите внимание, что все файлы с ошибками будут сохраняться с именем компьютеров на котором запущен скрипт. В каждом из скриптов я так же ставил знак *, это связано не с точным вхождением. Например в первом случае после пути C:\Users* мы ожидаем еще символы и установив звездочку мы это указали. В случае Get-ChildItem ситуация похожая, но более подробно мы обсуждали в статье поиск файлов в Powershell.

Мы можем использовать поиск процессов не относящихся к производителям ПО, которые мы устанавливали на ПК пользователей. Для этого есть свойство Company. Не все объекты имеют имя компании, они связаны с задачами операционной системы:

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

По умолчанию мы получаем данные по CPU в секундах, но следующий скрипт вернет процент использования:

Далее эту функцию можно запускать на удаленных компьютерах:

Источник

Управление процессами с помощью командлетов Process

Командлеты Process в Windows PowerShell позволяют управлять локальными и удаленными процессами в Windows PowerShell.

Получение процессов (Get-Process)

Для получения процессов, запущенных на локальном компьютере, выполните командет Get-Process без параметров.

Отдельные процессы можно получить, указав их имена или идентификаторы. Следующая команда возвращает процесс Idle:

То, что в некоторых ситуациях командлеты не возвращают данные, является нормальным. Однако если при указании процесса по его идентификатору Get-Process не находит совпадений, он выдает ошибку, так как стандартной целью является получение известного выполняющегося процесса. Если процесс с указанным идентификатором отсутствует, весьма вероятно, что идентификатор неправильный или нужный процесс уже завершился:

Параметр Name командлета Get-Process можно использовать для указания подмножества процессов на основе имени процесса. Параметр Name может принимать несколько имен в виде списка с разделителями-запятыми и поддерживает использование подстановочных знаков, что позволяет задавать шаблоны имен.

Например, следующая команда возвращает процессы, имена которых начинаются с «ex.».

Get-Process также принимает несколько значений для параметра Name.

Параметр ComputerName командлета Get-Process можно использовать для получения процессов на удаленных компьютерах. Например, следующая команда получает процессы PowerShell на локальном (представленным «localhost») и двух удаленных компьютерах.

Имена компьютеров в этих данных не указаны, однако они хранятся в свойстве MachineName объектов процесса, возвращаемых Get-Process. Следующая команда использует командлет Format-Table для отображения свойств ID, ProcessName и MachineName (ComputerName) объектов процесса.

Эта более сложная команда добавляет в стандартные отображаемые данные Get-Process свойство MachineName.

Остановка процессов (Stop-Process)

Windows PowerShell позволяет гибко выводить списки процессов, но как обстоят дела с остановкой процесса?

Командлет Stop-Process принимает имя или идентификатор, указывающие останавливаемый процесс. Возможность остановки процессов зависит от ваших разрешений. Некоторые процессы остановить нельзя. Например, при попытке остановить неактивный процесс возникает ошибка:

Можно также принудительно вывести запрос с помощью параметра Confirm. Он особенно удобен при использовании подстановочного знака в имени процесса, так как случайно может быть определено соответствие с некоторыми процессами, которые не нужно останавливать:

Сложную обработку процессов можно реализовать с помощью командлетов фильтрации объектов. Так как объект Process имеет свойство Responding, которое равно true, если он перестал отвечать, вы можете остановить все неотвечающие приложения с помощью следующей команды:

Аналогичный подход возможен и в других ситуациях. Предположим, например, что приложение дополнительной области уведомлений запускается автоматически при открытии другого приложения. Эта процедура может работать неправильно в сеансах служб терминалов, однако вам все равно нужно сохранить ее в сеансах, выполняемых в консоли физического компьютера. Сеансы, подключенные к рабочему столу физического компьютера, всегда имеют идентификатор сеанса 0, поэтому можно остановить все экземпляры процесса, находящиеся в других сеансах, с помощью Where-Object и SessionId процесса:

Командлет Stop-Process не использует параметр ComputerName. Поэтому для выполнения команды остановки процесса на удаленном компьютере необходимо использовать командлет Invoke-Command. Например, чтобы остановить процесс PowerShell на удаленном компьютере Server01, введите:

Остановка всех остальных сеансов Windows PowerShell

В некоторых случаях может пригодиться возможность остановки всех выполняющихся сеансов Windows PowerShell, отличных от текущего. Если сеанс использует слишком много ресурсов или недоступен (он может выполняться удаленно или в другом сеансе), возможно, остановить его напрямую не получится. При попытке остановить все выполняющиеся сеансы может быть завершен текущий сеанс.

Запуск, отладка и ожидание процессов

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

Источник

Get-Process

Gets the processes that are running on the local computer or a remote computer.

Syntax

Description

The Get-Process cmdlet gets the processes on a local or remote computer.

Without parameters, this cmdlet gets all of the processes on the local computer. You can also specify a particular process by process name or process ID (PID) or pass a process object through the pipeline to this cmdlet.

By default, this cmdlet returns a process object that has detailed information about the process and supports methods that let you start and stop the process. You can also use the parameters of the Get-Process cmdlet to get file version information for the program that runs in the process and to get the modules that the process loaded.

Examples

Example 1: Get a list of all active processes on the local computer

This command gets a list of all active processes running on the local computer. For a definition of each column, see the Notes section.

Example 2: Get all available data about one or more processes

This command gets all available data about the Winword and Explorer processes on the computer. It uses the Name parameter to specify the processes, but it omits the optional parameter name. The pipeline operator | passes the data to the Format-List cmdlet, which displays all available properties * of the Winword and Explorer process objects.

Example 3: Get all processes with a working set greater than a specified size

This command gets all processes that have a working set greater than 20 MB. It uses the Get-Process cmdlet to get all running processes. The pipeline operator | passes the process objects to the Where-Object cmdlet, which selects only the object with a value greater than 20,000,000 bytes for the WorkingSet property.

Example 4: List processes on the computer in groups based on priority

Example 5: Add a property to the standard Get-Process output display

This example retrieves processes from the local computer and a remote computer (S1). The retrieved processes are piped to the Format-Table command that adds the MachineName property to the standard Get-Process output display.

Example 6: Get version information for a process

This command uses the FileVersionInfo parameter to get the version information for the powershell.exe file that is the main module for the PowerShell process.

To run this command with processes that you do not own on Windows Vista and later versions of Windows, you must open PowerShell with the Run as administrator option.

Example 7: Get modules loaded with the specified process

This command uses the Module parameter to get the modules that have been loaded by the process. This command gets the modules for the processes that have names that begin with SQL.

To run this command on Windows Vista and later versions of Windows with processes that you do not own, you must start PowerShell with the Run as administrator option.

Example 8: Find the owner of a process

The first command shows how to find the owner of a process. The IncludeUserName parameter requires elevated user rights (Run as Administrator). The output reveals that the owner is Domain01\user01.

The second and third command are another way to find the owner of a process.

Example 9: Use an automatic variable to identify the process hosting the current session

The first command gets all of the PowerShell processes in the current session.

The second command gets the PowerShell process that is hosting the current session.

Example 10: Get all processes that have a main window title and display them in a table

This command gets all the processes that have a main window title, and it displays them in a table with the process ID and the process name.

Parameters

Specifies the computers for which this cmdlet gets active processes. The default is the local computer.

Type the NetBIOS name, an IP address, or a fully qualified domain name (FQDN) of one or more computers. To specify the local computer, type the computer name, a dot (.), or localhost.

This parameter does not rely on Windows PowerShell remoting. You can use the ComputerName parameter of this cmdlet even if your computer is not configured to run remote commands.

Type:String [ ]
Aliases:Cn
Position:Named
Default value:Local computer
Accept pipeline input:True
Accept wildcard characters:False

Indicates that this cmdlet gets the file version information for the program that runs in the process.

On Windows Vista and later versions of Windows, you must open PowerShell with the Run as administrator option to use this parameter on processes that you do not own.

You cannot use the FileVersionInfo and ComputerName parameters of the Get-Process cmdlet in the same command.

To get file version information for a process on a remote computer, use the Invoke-Command cmdlet.

Type:SwitchParameter
Aliases:FV, FVI
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
Type:Int32 [ ]
Aliases:PID
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

Indicates that the UserName value of the Process object is returned with results of the command.

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

Specifies one or more process objects. Enter a variable that contains the objects, or type a command or expression that gets the objects.

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

Indicates that this cmdlet gets the modules that have been loaded by the processes.

On Windows Vista and later versions of Windows, you must open PowerShell with the Run as administrator option to use this parameter on processes that you do not own.

To get the modules that have been loaded by a process on a remote computer, use the Invoke-Command cmdlet.

When you use both the Module and FileVersionInfo parameters in the same command, this cmdlet returns a FileVersionInfo object with information about the file version of all modules.

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

Specifies one or more processes by process name. You can type multiple process names (separated by commas) and use wildcard characters. The parameter name («Name») is optional.

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

Inputs

You can pipe a process object to this cmdlet.

Источник

Управление процессами с помощью PowerShell

PowerShell предоставляет широкие возможности управления процессами на локальном или удаленном компьютере. С помощью PowerShell можно получить список запущенных процессов, приостановить зависший процесс, найти процесс по заголовку окна, запустить новый процесс в скрытом или интерактивном режиме.

Список доступных командлетов управления процессами в Windows 10 можно вывести так:

Get-Command –Noun Process

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Get-Process – получение списка запущенных процессов

Командлет Get-Process позволяет вывести список запущенных процессов на локальном компьютере.

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

По-умолчанию выводятся следующие свойства запущенных процессов:

Чтобы получить все свойства нескольких процессов:

Get-Process winword, notep* | Format-List *

Можно вывести только определенный свойства процессов. Например, имя (ProcessName) время запуска (StartTime), заголовок окна процесса (MainWindowTitle), имя исполняемого файла (Path) и наименование разработчика (Company):

Get-Process winword, notep* | Select-Object ProcessName, StartTime, MainWindowTitle, Path, Company|ft

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Вывести список запущенных процессов пользователя с графическими окнами (в список не попадут фоновые и системные процессы):

Get-Process | Where-Object <$_.mainWindowTitle>| Format-Table Id, Name, mainWindowtitle

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

С помощью параметра IncludeUserName можно вывести имя пользователя (владельца), который запустил процесс:

С помощью Where-Object можно выбрать процессы в соответствии с заданными критериями. Например, выведем все процессы, которые используются более 200 Мб оперативной памяти, отсортируем процессы в порядке убывания используемого объема RAM, размер памяти из Кб преобразуем в Мб:

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Как мы уже говорили ранее командлет Get-Process в параметре CPU содержит время использования процессора конкретным процессом в секундах. Чтобы отобразить процент использования CPU процессами (по аналогии с Task Manager), используйте такую функцию:

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Чтобы найти зависшие процессы (которые не отвечают), выполните команду:

Start-Process, Stop-Process: запуск и остановка процессов из PowerShell

Чтобы запустить новый процесс с помощью PowerShell используется команда:

Можно запустить программу и передать ей аргументы:

С помощью параметра WindowStyle вы можете задать режим запуска окна процесса (normal, minimized, maximized, hidden). Например, чтобы запустить программу в максимально развернуом окне и дождаться завершения процесса, выполните команду:

С помощью командлета Stop-Process можно завершить любой процесс. Например, чтобы закрыть все запущенные процессы notepad:

По-умолчанию не запрашивается подтверждение завершения процесса. Закрываются все процессы, которые соответствуют указанным критериям. Чтобы запросить подтверждение завершения для каждого процесса, добавьте –Confirm.

get process powershell параметры. Смотреть фото get process powershell параметры. Смотреть картинку get process powershell параметры. Картинка про get process powershell параметры. Фото get process powershell параметры

Из PowerShell можно принудительно завершить все приложения, которые не отвечают диспетчеру процессов Windows:

PowerShell: управление процессами на удаленном компьютере

С помощью аргумента ComputerName командлет Get-Process позволяет управлять процессами на удаленных компьютерах (должен быть включен и настроен WinRM).

Если вы хотите завершить процесс на удаленном компьютере, имейте в виду, что у командлета Stop-Process отсутствует параметр –ComputerName. Для завершения процесса на удаленном компьютере можно использовать такой PowerShell код:

Источник

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

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