Бывает так, что нам нужно посмотреть, запущена та или иная программа на удаленном компьютере. Просто и быстро. Без стороннего софта. Ну или по каким-то другим причинам посмотреть запущенные процессы.
Если говорить о локальном компьютере, то абсолютное большинство использует для мониторинга процессов Windows Диспетчер задач. Но вот в случае с удаленным компьютером он нам не помощник. Рассмотрим очень простой способ.
Активные пользователи командной строки Windows знают о существовании такой замечательной команды, как tasklist. Команда делает именно то, о чем можно было подумать, т.е. выводит список процессов. Может она это сделать и для удаленного компьютера. Синтаксис команды таков:
tasklist [/S имя_удаленного_компьютера [/U имя_пользователя [/P пароль]]] [/M модуль | /SVC | /V] [/FI фильтр] [/FO формат] [/NH]
/S — необходимо указать имя удаленного компьютера, если подключаемся к такому. Для локального компьютера не указывается;
/U — имя пользователя, от которого будут просматриваться процессы. Пользователь должен быть администратором;
/P — пароль от указанной учетной записи пользователя, если пароль не указан, будет выполнен запрос на ввод пароля;
/M — отображение всех процессов, которые используют указанное имя. Если не задано, будут отображаться все процессы;
/SVC — отображение служб для каждого процесса;
/V — ведение подробного протоколирования;
/FI — отображение процессов, которые соответствуют указанному фильтру;
/FO — формат файла для экспорта, допустимы значение TABLE, LIST и CSV;
/NH — отключение отображение заголовка в выводим данных, доступно для форматов TABLE и CSV.
Таким образом, если нам просто нужно посмотреть список запущенных процессов на локальном компьютере, то достаточно просто набрать
tasklist
Если же мы хотим посмотреть процессы на удаленном компьютере (например, с именем Test-PC), то команда должна выглядеть следующим образом:
tasklist /s Test-PC
Кроме этого момента, вынесенного в заголовок статьи, разберем другие примеры использования команды tasklist. Что, если мы не хотим просматривать все процессы, а только начинающиеся с win? Тогда мы можем использовать фильтр:
tasklist /fi "imagename eq win*"
Со стороны написанное может казаться непонятным. Поэтому разберем синтаксис составления фильтров в команде tasklist.
Начнем с того, что фильтр заключается в кавычки. Далее идёт очень простая схема:
[имя_фильтра] [оператор] [значение]
Есть ограниченное число имён фильтров, операторов и значений. Они в таблице ниже.
Имя фильтра | Допустимые операторы | Допустимые значения | Описание |
STATUS | eq, ne | RUNNING, SUSPENDED, NOT RESPONDING, UNKNOWN | Статус процесса |
IMAGENAME | eq, ne | Имя (часть имени) процесса(-ов) | Подходящие по наименованию процессы |
PID | eq, ne, gt, lt, ge, le | Значение PID | Идентификатор процесса |
SESSION | eq, ne, gt, lt, ge, le | Номер сеанса | Номер сеанса в Windows |
SESSIONNAME | eq, ne | Имя сеанса | Имя сеанса в Windows |
CPUTIME | eq, ne, gt, lt, ge, le | Время ЦП в формате чч:мм:сс (часы:минуты:секунды) | Время обработки задачи |
MEMUSAGE | eq, ne, gt, lt, ge, le | Используемая ОЗУ (в КБ) | Размер используемой задачей оперативной памяти |
USERNAME | eq, ne | Имя пользователя | Пользователь, из-под которого запущен процесс |
SERVICES | eq, ne | Имя службы | Используемые службы |
WINDOWTITLE | eq, ne | Заголовок окна | Заголовок окна процесса |
MODULES | eq, ne | Имя dll (динамически подключаемой библиотеки) | Используемые библиотеки |
Отметим, что для удаленных компьютеров не действуют фильтры «WINDOWTITLE» и «STATUS».
Используемые операторы сравнения означают следующее:
eq — равно;
ne — не равно;
gt — больше;
lt — меньше;
ge — больше или равно;
le — меньше или равно.
Синтаксис фильтров является, пожалуй, самой сложной частью. Все следующие примеры проще. Тот же просмотр служб, относящихся к задачам, вызывается следующей командой:
tasklist /svc
Если мы хотим вывести информацию в файл, то нужно использовать параметр /FO. Конечно же, у вас должны быть права на запись в каталог, куда вы хотите поместить файл с выводимой информацией. Команда
tasklist /fo csv > c:primer.csv
выведет информацию в формате .csv в файл primer.csv, который находится на диске C.
Что, если нам надо посмотреть какие процессы используют определенную dll-библиотеку? Например, библиотеку cfgmgr32.dll. Это можно сделать командой
tasklist /m cfgmgr32.dll
Получилось несколько больше, чем просто статья о просмотре процессов на другом компьютере. 🙂 Это потому, что я считаю, что, заводя речь о какой-то команде, надо давать более-менее подробное описание её сути. Конечно, в данной статье приведены не все примеры и не все нюансы команды tasklist. Их можно изучить самостоятельно.
Иногда возникает вопрос как посмотреть какие процессы запущены на удаленном компьютере пользователя (и завершить процесс на удаленном компьютере) но при этом не ставить ни какое доп ПО и вообще что бы это было быстро и желательно из консоли ) На этот случай “мелкософт” позаботился о сисадминах и дал там волшебную команду tasklist (о всех ее функция можете посмотреть в командной строке tasklist /?)
Но перейдем к делу, а точнее к пошаговой инструкции по пользованию этой удобной утилиты!
- Для начала откроем командную строку Пуск-cmd
- Вводим команду tasklist /s winxp-test
tasklist – команда по выводу удаленных процессов
/s – ключ который говорит что будет подключать удаленный компьютер
winxp-test – имя компьютера на котором нужно вывести процессы - теперь зная имя процесса и его PID мы его принудительно завершим, для примера я взял процесс uTorrent с номер процесса 2720
- Далее запускаем другую команду taskkill /s winxp-test /pid 2720
- Все, радуемся жизни не поднимаю пятую точку со стула )
PS Данная утилиты очень полезна когда требуется быстро решить проблему не тревожа пользователя выяснить что не так на его компе или найти “плохую редиску” в офисе которая запускает ненужно ПО на своем компе.
доп ключи : просмотр процессов на удаленном компьютере, список процессов на удаленном компьютере, процессы замедляющие работу компьютера, завершить процесс на удаленном компьютере, как посмотреть процессы на компьютере.
Видео урок как посмотреть и завершить процесс на удаленном компьютере
Иногда возникает вопрос как посмотреть какие процессы запущены на удаленном компьютере пользователя (и завершить процесс на удаленном компьютере) но при этом не ставить ни какое доп ПО и вообще что бы это было быстро и желательно из консоли ) На этот случай «мелкософт» позаботился о сисадминах и дал там волшебную команду tasklist (о всех ее функция можете посмотреть в командной строке tasklist /?)
Но перейдем к делу, а точнее к пошаговой инструкции по пользованию этой удобной утилиты!
- Для начала откроем командную строку Пуск-cmd
- Вводим команду tasklist /s winxp-test
tasklist — команда по выводу удаленных процессов
/s — ключ который говорит что будет подключать удаленный компьютер
winxp-test — имя компьютера на котором нужно вывести процессы
- теперь зная имя процесса и его PID мы его принудительно завершим, для примера я взял процесс uTorrent с номер процесса 2720
- Далее запускаем другую команду taskkill /s winxp-test /pid 2720
- Все, радуемся жизни не поднимаю пятую точку со стула )
PS Данная утилиты очень полезна когда требуется быстро решить проблему не тревожа пользователя выяснить что не так на его компе или найти «плохую редиску» в офисе которая запускает ненужно ПО на своем компе.
доп ключи : просмотр процессов на удаленном компьютере, список процессов на удаленном компьютере, процессы замедляющие работу компьютера, завершить процесс на удаленном компьютере, как посмотреть процессы на компьютере.
Видео урок как посмотреть и завершить процесс на удаленном компьютере
Join @AdmNtsRu on Telegram
Смотрите также:
Содержание
- Как посмотреть список процессов в Windows на удаленном компьютере
- Способ 1 (быстрый)
- Способ 2 (чуть дольше)
- Способ 3 (еще чуть дольше)
- Комментарии к статье (4)
- Управление процессами из командной строки
- Управление процессами с помощью PowerShell
- Get-Process – получение списка запущенных процессов
- Start-Process, Stop-Process: запуск и остановка процессов из PowerShell
- PowerShell: управление процессами на удаленном компьютере
- Использование PsTools для управления другими ПК из командной строки
- Подключение к удаленным компьютерам (синтаксис для всех утилит)
- Настройка доступа к удаленному администрированию
- PsExec
- Копирование программ на удаленный компьютер
- Взаимодействие с зарегистрированным пользователем на удаленном ПК
- Запуск полной командной строки через PsExec
- Другие опции
- PsFile
- PsGetSid
- PsInfo
- PsKill
- PsList
- PsLoggedOn
- PsLogList
- PsPasswd
- PsPing
- PsService
- PsShutdown
- PsSuspend
- Когда утилиты не подключаются из-за удаленного реестра
- Следующий урок
Как посмотреть список процессов в Windows на удаленном компьютере
Бывает так, что нам нужно посмотреть, запущена та или иная программа на удаленном компьютере. Просто и быстро. Без стороннего софта. Ну или по каким-то другим причинам посмотреть запущенные процессы.
Если говорить о локальном компьютере, то абсолютное большинство использует для мониторинга процессов Windows Диспетчер задач. Но вот в случае с удаленным компьютером он нам не помощник. Рассмотрим очень простой способ.
tasklist [/S имя_удаленного_компьютера [/U имя_пользователя [/P пароль]]] [/M модуль | /SVC | /V] [/FI фильтр] [/FO формат] [/NH]
/S — необходимо указать имя удаленного компьютера, если подключаемся к такому. Для локального компьютера не указывается;
/U — имя пользователя, от которого будут просматриваться процессы. Пользователь должен быть администратором;
/P — пароль от указанной учетной записи пользователя, если пароль не указан, будет выполнен запрос на ввод пароля;
/M — отображение всех процессов, которые используют указанное имя. Если не задано, будут отображаться все процессы;
/SVC — отображение служб для каждого процесса;
/V — ведение подробного протоколирования;
/FI — отображение процессов, которые соответствуют указанному фильтру;
Таким образом, если нам просто нужно посмотреть список запущенных процессов на локальном компьютере, то достаточно просто набрать
Пример вывода команды tasklist.
Если же мы хотим посмотреть процессы на удаленном компьютере (например, с именем Test-PC), то команда должна выглядеть следующим образом:
Использование фильтров в команде tasklist.
Начнем с того, что фильтр заключается в кавычки. Далее идёт очень простая схема:
[имя_фильтра] [оператор] [значение]
Есть ограниченное число имён фильтров, операторов и значений. Они в таблице ниже.
Имя фильтра | Допустимые операторы | Допустимые значения | Описание |
STATUS | eq, ne | RUNNING, SUSPENDED, NOT RESPONDING, UNKNOWN | Статус процесса |
IMAGENAME | eq, ne | Имя (часть имени) процесса(-ов) | Подходящие по наименованию процессы |
PID | eq, ne, gt, lt, ge, le | Значение PID | Идентификатор процесса |
SESSION | eq, ne, gt, lt, ge, le | Номер сеанса | Номер сеанса в Windows |
SESSIONNAME | eq, ne | Имя сеанса | Имя сеанса в Windows |
CPUTIME | eq, ne, gt, lt, ge, le | Время ЦП в формате чч:мм:сс (часы:минуты:секунды) | Время обработки задачи |
MEMUSAGE | eq, ne, gt, lt, ge, le | Используемая ОЗУ (в КБ) | Размер используемой задачей оперативной памяти |
USERNAME | eq, ne | Имя пользователя | Пользователь, из-под которого запущен процесс |
SERVICES | eq, ne | Имя службы | Используемые службы |
WINDOWTITLE | eq, ne | Заголовок окна | Заголовок окна процесса |
MODULES | eq, ne | Имя dll (динамически подключаемой библиотеки) | Используемые библиотеки |
Отметим, что для удаленных компьютеров не действуют фильтры «WINDOWTITLE» и «STATUS».
Используемые операторы сравнения означают следующее:
eq — равно;
ne — не равно;
gt — больше;
lt — меньше;
ge — больше или равно;
le — меньше или равно.
Синтаксис фильтров является, пожалуй, самой сложной частью. Все следующие примеры проще. Тот же просмотр служб, относящихся к задачам, вызывается следующей командой:
Просмотр используемых служб в команде tasklist.
Если мы хотим вывести информацию в файл, то нужно использовать параметр /FO. Конечно же, у вас должны быть права на запись в каталог, куда вы хотите поместить файл с выводимой информацией. Команда
Что, если нам надо посмотреть какие процессы используют определенную dll-библиотеку? Например, библиотеку cfgmgr32.dll. Это можно сделать командой
Источник
Информация в этой статье будет полезна для тех, кто пользуется удаленным рабочим столом, он же RDP и хотел бы запустить диспетчер задач Windows на удаленном компьютере. Если нажать привычную всем комбинацию клавиш Ctrl+Alt+Del, то нужного эффекта не будет, т.к. диспетчер задач запуститься на локальном компьютере.
Способ 1 (быстрый)
Для запуска диспетчера задач на удаленном рабочем столе, достаточно нажать альтернативную комбинацию клавиш: Ctrl + Shift + Esc (Контрол+Шифт+Эскейп). После этого на удаленном компьютере запустится диспетчер задач Windows.Расположение клавиш можно посмотреть на картинке ниже:
Способ 2 (чуть дольше)
Достаточно навести указатель мышки в любое свободное место панели задач, нажать правую кнопку мышки и выбрать пункт «Запустить диспетчер задач» (в английской версии Windows «Start Task Manager«). После этого мы получим аналогичный эффект.
Способ 3 (еще чуть дольше)
Идем в меню «Пуск«, выбираем там пункт «Выполнить» и вводим Taskmgr, радуемся 😉
Была ли эта статья Вам полезна?
Комментарии к статье (4)
Спасибо)) а то положил комп на работе
Так же, обычный пользователь может открыть диспетчер задач, и там на вкладке «Пользователи» посмотреть все это. Ну, или если нужен например вывод в текстовом виде, то лучше воспользоваться выше предложенным вариантом с qwinsta.
К сожалению, у меня нет возможности проверить догадку, но есть такая утилита, как qwinsta. Возможно, она позволит без админских прав смотреть активных RDP юзеров. Если нет, то можно попробовать информацию из этой статьи:
https://pc.ru/articles/zapusk-programmy-trebuyushhij-prava-administratora-pod-uchetnoj-zapisyu-obychnogo-polzovatelya
qwinsta /?
Display information about Remote Desktop Sessions.
QUERY SESSION [sessionname | username | sessionid]
[/SERVER:servername] [/MODE] [/FLOW] [/CONNECT] [/COUNTER] [/VM]
sessionname Identifies the session named sessionname.
username Identifies the session with user username.
sessionid Identifies the session with ID sessionid.
/SERVER:servername The server to be queried (default is current).
/MODE Display current line settings.
/FLOW Display current flow control settings.
/CONNECT Display current connect settings.
/COUNTER Display current Remote Desktop Services counters informati
on.
/VM Display information about sessions within virtual machines.
А теперь, то же самое, только для rdp-сессии для контроллера домена. Суть вопроса: что надо сделать, чтобы конкретный пользователь, без админских прав, смог смотреть подключенных по rdp клиентов?
Источник
Управление процессами из командной строки
Способов управлять процессами в Windows предостаточно, и командная строка занимает в них далеко не первое место. Однако иногда бывают ситуации, когда все остальные инструменты кроме командной строки недоступны, например некоторые вредоносные программы могут блокировать запуск Task Manager и подобных ему программ. Да и просто для общего развития полезно знать способы управления компьютером из командной строки.
Для управления процессами в командной строке есть две утилиты — tasklist и taskkill. Первая показывает список процессов на локальном или удаленном компьютере, вторая позволяет их завершить. Попробуем …
Если просто набрать команду tasklist в командной строке, то она выдаст список процессов на локальном компьютере.
По умолчанию информация выводится в виде таблицы, однако ключ /fo позволяет задать вывод в виде списка или в формате CSV, а ключ /v показывает более подробную информацию о процессах, например команда tasklist /v /fo list выведет подробное описание всех процессов в виде списка.
Найдя процессы, которые необходимо завершить, воспользуемся командой taskkill. Завершать процессы можно по имени, идентификатору процесса (PID) или задав условия с помощью фильтров. Для примера запустим несколько экземпляров блокнота (notepad.exe) и попробуем завершить его разными способами.
Ключ /f завершает процесс принудительно, а /t завершает все дочерние процессы.
Полную справку по командам tasklist и taskkill можно получить, введя их с ключом /?
Теперь пустим в ход тяжелую артиллерию — PowerShell. Его можно запустить не выходя из командной строки. Для получения списка процессов используем командлет Get-Process.
Чтобы не выводить весь список процессов можем воспользоваться командлетом Where-Object, который задает фильтр для выводимой информации. Для примера выведем список процессов, которые загружают процессор и отсортируем их по возрастанию нагрузки с помощью команды:
С помощью PowerShell мы можем получить любую информацию о любом процессе. В качестве примера возьмем процесс cmd и выведем список его свойств командой:
Выбираем те свойства, что нам интересны ( в примере имя и ID процесса, путь к файлу, используемые модули и время запуска) и выводим их в виде списка командой:
Таким образом мы можем посмотреть когда и кем был запущен процесс, сколько он потребляет ресурсов, где находится исполняемый файл и еще много различной информации.
Для завершения процесса в PowerShell есть командлет Stop-Process. Он завершает указанный процесс по его имени или идентификатору. Однако мы поступим по другому и передадим результат выполнения командлета Get-Process по конвейеру:
Для боле полного ознакомления с PowerShell можно воспользоваться встроенной справкой, для вызова справки нужно набрать Get-Help ″имя командлета″
Ну и для полноты обзора рассмотрим еще одно средство для управления процессами из командной строки. Это утилиты Pslist и Pskill входящие в состав пакета PSTools от компании Sysinternals.
Эти утилиты не требуют специальной установки, достаточно просто скопировать их на диск. Для запуска нужно зайти в папку с утилитами и ввести в командной строке необходимую команду.
Завершение процесса программой pskill предельно просто, вводим команду и имя (или ID) процесса и все.
Справку по утилитам Pslist и Pskill можно посмотреть, введя команду с ключом /?
И еще, все манипуляции с процессами необходимо выполнять с правами администратора, для этого командную строку требуется запускать с повышением привилегий.
Источник
Управление процессами с помощью PowerShell
PowerShell предоставляет широкие возможности управления процессами на локальном или удаленном компьютере. С помощью PowerShell можно получить список запущенных процессов, приостановить зависший процесс, найти процесс по заголовку окна, запустить новый процесс в скрытом или интерактивном режиме.
Список доступных командлетов управления процессами в Windows 10 можно вывести так:
Get-Command –Noun Process
Get-Process – получение списка запущенных процессов
Командлет Get-Process позволяет вывести список запущенных процессов на локальном компьютере.
По-умолчанию выводятся следующие свойства запущенных процессов:
Чтобы получить все свойства нескольких процессов:
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 | Where-Object <$_.mainWindowTitle>| Format-Table Id, Name, mainWindowtitle
С помощью параметра IncludeUserName можно вывести имя пользователя (владельца), который запустил процесс:
С помощью Where-Object можно выбрать процессы в соответствии с заданными критериями. Например, выведем все процессы, которые используются более 200 Мб оперативной памяти, отсортируем процессы в порядке убывания используемого объема RAM, размер памяти из Кб преобразуем в Мб:
Как мы уже говорили ранее командлет Get-Process в параметре CPU содержит время использования процессора конкретным процессом в секундах. Чтобы отобразить процент использования CPU процессами (по аналогии с Task Manager), используйте такую функцию:
Чтобы найти зависшие процессы (которые не отвечают), выполните команду:
Start-Process, Stop-Process: запуск и остановка процессов из PowerShell
Чтобы запустить новый процесс с помощью PowerShell используется команда:
Можно запустить программу и передать ей аргументы:
С помощью параметра WindowStyle вы можете задать режим запуска окна процесса (normal, minimized, maximized, hidden). Например, чтобы запустить программу в максимально развернуом окне и дождаться завершения процесса, выполните команду:
С помощью командлета Stop-Process можно завершить любой процесс. Например, чтобы закрыть все запущенные процессы notepad:
По-умолчанию не запрашивается подтверждение завершения процесса. Закрываются все процессы, которые соответствуют указанным критериям. Чтобы запросить подтверждение завершения для каждого процесса, добавьте –Confirm.
Из PowerShell можно принудительно завершить все приложения, которые не отвечают диспетчеру процессов Windows:
PowerShell: управление процессами на удаленном компьютере
С помощью аргумента ComputerName командлет Get-Process позволяет управлять процессами на удаленных компьютерах (должен быть включен и настроен WinRM).
Если вы хотите завершить процесс на удаленном компьютере, имейте в виду, что у командлета Stop-Process отсутствует параметр –ComputerName. Для завершения процесса на удаленном компьютере можно использовать такой PowerShell код:
Источник
На сегодняшнем уроке из серии Geek School, посвященной SysInternals, мы покажем вам, как использовать набор утилит PsTools для выполнения всех видов задач администрирования как локально, так и на удаленных компьютерах.
Если вы когда-нибудь хотели подключиться к другому компьютеру и запустить команду, быстро получить информацию о запущенных процессах и, возможно, завершить их, или даже остановить службу на другом ПК, вы можете использовать утилиты PsTools для выполнения всех этих задач и даже Больше.
Очевидно, что вы можете использовать удаленный рабочий стол или аналогичную службу для подключения к любому компьютеру с Windows и фактически видеть рабочий стол и делать все, что вы будете делать локально, но утилиты PsTools позволяют вам выполнять множество задач из командной строки — или, что еще лучше, из скрипт, который вы можете использовать позже.
Это тот тип утилит, который лучше всего работает в корпоративной среде, и овладение этими инструментами определенно сделает вас намного лучше в работе по системному администрированию, сэкономит ваше время и позволит вам делать вещи намного умнее. Делать вещи умнее и быстрее — это важный навык для того, чтобы быть отличным сисадмином.
В наборе PsTools есть двенадцать инструментов, и хотя некоторые из них чрезвычайно полезны, другие были заменены инструментами, встроенными в более поздние версии Windows, и есть несколько других, которые бесполезны для большинства людей. Мы рассмотрим все из них, чтобы вы поняли, как они работают и почему вы можете захотеть использовать каждый из них.
Стоит отметить, что вы можете использовать такой инструмент, как PsExec, для запуска всех видов утилит командной строки на удаленных компьютерах, включая действительно полезные, такие как инструмент командной строки Autoruns и многие другие. Возможности безграничны, когда вы освоите мощь PsTools.
Все эти инструменты можно использовать на локальных компьютерах, но они в основном полезны для подключения к удаленным компьютерам и выполнения команд на них.
Подключение к удаленным компьютерам (синтаксис для всех утилит)
Все утилиты могут быть запущены как на локальном, так и на удаленном компьютере, поэтому при необходимости все они имеют один и тот же первый аргумент для имени компьютера. Обратите внимание, что вы можете использовать IP-адрес, если хотите вместо этого. Если вы пропустите этот аргумент, команда будет работать на вашем локальном компьютере.
Вы также можете перечислить несколько компьютеров, таких как psinfo \ computer1, computer2, computer3, или вы можете поместить все имена в файл и указать ссылку, например psinfo @ computerlist.txt. Последний синтаксис psinfo \ *, который работает на всех компьютерах в домене, что, вероятно, не то, что вы будете использовать каждый день.
Часть «user» команды изменится на «DOMAIN user», если вы находитесь в доменной среде и вам нужно перейти от текущего работающего пользователя.
Примечание. Обычно вам необходимо подключаться к удаленным компьютерам с учетной записью администратора.
Настройка доступа к удаленному администрированию
Если вы находитесь в доменной среде, которой будет пользоваться большинство людей, которым необходимо использовать PsTools, вы можете полностью игнорировать этот раздел, поскольку все должно работать нормально. Для тех, кто работает под управлением Windows 7, 8 или Vista в домашней среде или использует несколько компьютеров в офисе без домена, вам потребуется настроить контроль учетных записей на удаленном компьютере, чтобы PsTools работал правильно.
Чтобы объяснить это по-другому, когда вы пытаетесь подключиться к другому компьютеру и запустить что-то, требующее доступа администратора, нет способа вызвать приглашение UAC и принять его с вашего компьютера, поэтому он не будет подключаться как администратор.
И это не плохо. Вы не должны изменять этот параметр, не понимая полностью, что вы разрешите распространению вредоносного ПО с одного компьютера на другой — при условии, что вредоносное ПО имеет ваше локальное имя пользователя и пароль, и тот же пароль, что и на другом компьютере, и Вредоносные программы — это хитрость, а большинство — нет. Но все же это не то, что нужно воспринимать легкомысленно
И снова, если вы находитесь в доменной среде, эта проблема не существует и не нуждается в изменении. И если вы просто тестируете с кучей виртуальных машин, вам не о чем беспокоиться.
Чтобы настроить UAC для запуска PsTools, вам нужно открыть редактор реестра и перейти к следующему ключу:
HKEY_LOCAL_MACHINE SOFTWARE Microsoft
Windows CurrentVersion Policies System
Когда вы окажетесь там, создайте новый 32-битный DWORD с правой стороны, присвойте ему имя LocalAccountTokenFilterPolicy и значение 1. Вам не нужно перезагружать компьютер, чтобы настройки вступили в силу.
Примечание: просто чтобы уточнить, этот параметр должен произойти на удаленном компьютере, к которому вы подключаетесь.
PsExec
PsExec, вероятно, является самым мощным инструментом в наборе, так как вы можете выполнить любую команду в локальной командной строке так же, как и на удаленном компьютере. Это включает в себя все, что можно запустить из командной строки — вы можете изменить параметры реестра, запустить сценарии и утилиты или подключиться с этого компьютера к другому. Вывод команд будет показан на вашем локальном ПК, а не на удаленном.
psexec \ computername apptorun.exe
Реально, однако, вы бы хотели также включить имя пользователя и пароль в командной строке. Например, чтобы подключиться к другому компьютеру и проверить список сетевых подключений, вы должны использовать что-то вроде этого:
Эта команда выдаст вывод, подобный следующему:
Если вы хотите передать> или | символ через соединение PsExec с удаленным компьютером, вам нужно будет использовать символ ^, который является малоизвестным escape-символом в командной оболочке Windows. Это, конечно, означает, что нам на самом деле нужно будет использовать командную оболочку на удаленном компьютере, а не просто запустить процесс, поэтому мы можем в первую очередь выполнить перенаправление или конвейер. Таким образом, наша команда выглядит следующим образом (изменение пути к домашнему каталогу, в котором у нас есть права на запись).
В этом примере список открытых подключений, сгенерированных netstat, помещается в домашний каталог пользователя на удаленном компьютере в файл с именем connections.txt.
Копирование программ на удаленный компьютер
Есть несколько других опций, которые определяют, будет ли приложение всегда копироваться, или его следует копировать, если локальное приложение имеет более высокую версию, чем удаленное. Вы можете просто запустить psexec из командной строки, чтобы увидеть эти опции.
Примечание. Если команда доступна только в командной строке, перед ней необходимо добавить cmd / c. Это включает в себя трубы и перенаправления, как | и>.
Взаимодействие с зарегистрированным пользователем на удаленном ПК
Если вам интересно, да, это даст вам доступ ко многим вещам, которые вы обычно не имеете права редактировать в реестре. И да, это действительно плохая идея.
Запуск полной командной строки через PsExec
Да, мы только что показали вам все эти примеры того, как выполнить одну команду через PsExec… и оказалось, что вы можете запустить полную оболочку на локальном компьютере, которая фактически работает на удаленном компьютере. Это как если бы вы были на консоли этого сервера (по большей части). И, к счастью, синтаксис для этого очень прост (добавьте имя пользователя, если вам нужно).
После этого у вас будет командная строка, которая теперь запущена на удаленном ПК.
Командная строка будет работать почти так же, как обычно, за исключением того, что завершение табуляции не будет работать вообще, но это нас устраивает.
Другие опции
Если вы просто запустите команду psexec из командной строки без каких-либо дополнительных ключей, вы увидите их все.
PsFile
Эта команда показывает файлы, которые в данный момент открыты по сети на локальном или удаленном ПК, и работает аналогично команде Windows «net file». Синтаксис такой же, как и любая другая команда в наборе.
Да, этот не такой веселый, как последний.
PsGetSid
Это отображает идентификатор безопасности для компьютера или пользователя и принимает стандартные аргументы. Эта утилита, вероятно, полезна только в очень специфических сценариях, с которыми мы лично не сталкивались. Так что попробуйте один раз и забудьте об этом, пока вам не понадобится когда-нибудь.
PsInfo
Эта команда перечисляет много полезной информации о системе, включая время работы, что очень весело. Вы можете запустить его локально, чтобы протестировать его, просто набрав psinfo в командной строке, предполагая, что ваши инструменты SysInternals находятся в пути.
Это дает намного больше информации, даже на почти пустой виртуальной машине:
Вы также можете запустить PsInfo удаленно, добавив имя компьютера и, возможно, имя пользователя переключается … но есть одна большая проблема: он не будет работать, если не включена служба удаленного реестра. Перейдите в конец статьи, где мы поговорим о том, как включить его на удаленном компьютере.
PsKill
Проблема с PsKill состоит в том, что в последних версиях Windows есть очень мощная утилита для уничтожения задач, встроенная прямо в систему под названием Taskkill, которая имеет гораздо больше функций.
PsList
Эта утилита очень проста, но довольно удобна для быстрого просмотра компьютера и определения, использует ли он слишком много ресурсов процессора или памяти. Вы можете указать имя или часть имени в командной строке, чтобы сузить список до проблемного приложения, и вы сможете увидеть почти всю информацию, включая потоки.
Примечание. Чтобы эта утилита работала на удаленном компьютере, вам нужно включить удаленную службу реестра. Обязательно прочитайте до конца урока, поскольку мы объясним, как с этим справиться позже.
PsLoggedOn
Эта утилита выводит список учетных записей, которые вошли в систему на компьютере или подключены удаленно. Это довольно просто и в значительной степени полезно в среде системного администратора.
PsLogList
Эта утилита отображает локальный или удаленный журнал событий в командной строке, и существует ряд опций, которые можно использовать для фильтрации данных.
psloglist \ Компьютерная система
Стоит отметить, что если у вас есть доступ администратора к другому компьютеру, вы можете просто открыть Event Viewer и выбрать Connect из меню Action. Введите имя компьютера в списке, измените учетные данные, если вам нужно, и получите доступ к журналам событий таким образом.
Единственный сценарий, в котором мы действительно можем увидеть, что PsLogList действительно полезен, — это если вы хотите написать сценарий для выполнения действия в случае определенных сообщений в журнале событий.
PsPasswd
Эта утилита позволяет менять пароли для пользователей, как локальных, так и удаленных. Синтаксис такой же, как и все остальное:
Преимущество этой утилиты по сравнению с использованием NET USER из обычной командной строки заключается в том, что вы можете менять пароли для нескольких компьютеров одновременно, и она работает и в доменной среде.
PsPing
Эта утилита пингует, проверяет порты и выполняет тестирование задержки и пропускной способности. Довольно просто
Или вы можете проверить подключение к порту, добавив номер порта следующим образом:
У этой команды есть множество дополнительных параметров, которые вы, вероятно, захотите проверить, если вам понадобится устранить неполадки в сети.
PsService
Эта утилита позволяет вам иметь дело со службами Windows из командной строки. Это действительно довольно легко использовать — синтаксис работает так:
Список команд можно найти, посмотрев на справку /? вариантов, но есть несколько вариантов, которые вы найдете больше, чем остальные.
В частности, начало | остановить | пауза | перезапустить | Опции cont действительно просты и понятны. Например, в следующей команде вы можете заменить «запуск» любой из этих других команд.
Другие параметры можно использовать для запроса дополнительной информации об услуге или изменения конфигурации.
Примечание: встроенная утилита sc.exe имеет массу полезных функций, которые перекрываются с этой утилитой. Основное отличие заключается в том, что PsService немного более удобна для пользователя.
PsShutdown
Эта утилита позволяет выключить, выйти из системы или даже перевести компьютер в спящий режим. Проблема в том, что она не лучше встроенной утилиты shutdown.exe и фактически была разработана для Windows XP, поэтому в большинстве случаев рекомендуется использовать встроенную утилиту.
Единственная опция, которую PsShutdown предоставляет, которую вы не можете получить иным способом, — это ключ (-d) для перевода компьютера в спящий режим, что может быть удобно.
PsSuspend
Эта утилита очень похожа на PsKill, но она делает то, чего не может встроенная утилита Taskkill — вы можете приостанавливать процессы, а не уничтожать их, что может быть очень удобно, если вы хотите временно остановить процесс, интенсивно использующий процессор, из работает, пока вы выполняете задачу системного администратора.
Приостановить процесс очень легко:
Когда утилиты не подключаются из-за удаленного реестра
Некоторые из этих утилит, включая PsInfo, PsList, PsLogList и PsLoggedOn, требуют, чтобы удаленная служба реестра была включена на удаленном компьютере, и она не включена по умолчанию в современных версиях Windows.
Хорошей новостью является то, что эту проблему легко устранить, и вам не нужно оставлять включенный удаленный реестр. Просто запустите эту команду, используя PsService, чтобы запустить службу:
psservice \ computername start RemoteRegistry
И затем, когда вы закончите с тем, что вы делаете с PsInfo или PsList, вы можете снова остановить службу, используя эту команду:
psservice \ computername stop RemoteRegistry
Простые решения — лучшие, не так ли?
Следующий урок
Обязательно присоединяйтесь к нам завтра, когда мы расскажем о файловых и дисковых утилитах и еще нескольких интересных вещах.
Источник
Иногда возникает необходимость глянуть, какие программы запущены на удаленном компьютере. Вот пара простых способов из серии «сисадмину на заметку».
Конечно, все это будет работать, если у вас есть необходимые права на удаленном компе. Например это один из доменных ПК, а вы админ.
Первый и самый просто способ это команда tasklist. Набираем в командной строке tasklist /s имя_компа и получаем вот такой результат:
Что мы видим: файлы процессов, их PIDы, сессии и сколько памяти они жрут. Зная PID процесса, его можно грохнуть. Для этого существует прекрасная команда taskkill. Набираем taskkill /s имя_компа /PID номер_процесса и радуемся 🙂
И есть еще второй способ, не менее простой, но чуть-чуть более удобный. Называется Remote Process Viewer For Windows Networks. Тулза бесплатная, качайте тут. Кстати, на том сайте есть еще несколько маленьких и полезных бесплатных утилит. Установки не требует, показывает не просто файлы процессов, а полный путь до них — очень удобно.
Первое, что должен сделать любой опытный пользователь, если он подозревает, что что-то замедляет работу компьютера или в фоновом режиме может работать подозрительная вредоносная программа, – это нажмите Ctrl + Shift + Escape, чтобы открыть диспетчер задач Windows. Оттуда вы можете посмотреть, что работает, и обнаружить, что какие-либо программы используют слишком много процессорного времени или памяти, или выглядеть подозрительно, и их там не должно быть. Хотя диспетчер задач Windows является ценным инструментом, существуют более эффективные альтернативные инструменты управления задачами, которые можно использовать для его замены.
Использование встроенного инструмента для управления задачами или стороннего диспетчера задач на локальном компьютере – это хорошо, но что делать, если в вашей сети есть несколько компьютеров, за которыми нужно следить? Process Explorer, Process Hacker или System Explorer и т. Д. Не могут показать вам, что обычно работает на другом компьютере, если есть что-то, что нуждается в проверке, вам придется физически перейти на этот компьютер и просмотреть или убить любые процессы.
К счастью, существуют способы удаленного доступа к другим компьютерам в вашей локальной сети, а также вы можете просматривать и управлять процессами на другом компьютере, не выходя из собственного. Здесь мы покажем вам 5 способов удаленного просмотра и управления задачами другого компьютера.
1. Remote Process Explorer
Remote Process Explorer от Lizardsystems – это хорошо известное бесплатное приложение для просмотра и управления запущенными процессами на удаленном компьютере. Это абсолютно бесплатно для дома и некоммерческого использования. Вам нужен бесплатный регистрационный код, чтобы использовать бесплатную версию, однако, посетите страницу регистрации и введите свое имя, адрес электронной почты, город и страну. Получив код в папке «Входящие», введите его через «Справка»> «Введите код регистрации».
Несмотря на то, что он работает через инструментарий управления Windows (WMI), Remote Process Explorer довольно полно показывает, что он отображает и что вы можете делать. Помимо просмотра очень подробной информации о каждом удаленном процессе, вы можете убить, запустить, а также изменить приоритет удаленного процесса. Вы даже можете поставить галочку и сделать так, чтобы связанный процесс регистрировал свою память и использование процессора через график в главном окне.
При первом запуске программа попросит запустить мастер, который определит, какие компьютеры находятся в сети, или вы можете сразу перейти к основному интерфейсу и настроить его самостоятельно. Предполагая, что вы запустили мастер и обнаружили целевой компьютер, щелкните его правой кнопкой мыши в списке компьютеров слева> Подключиться как> Следующий пользователь, затем введите имя удаленного пользователя и пароль и нажмите ОК.
Вкладки «Процессы» и «OSInfo» теперь должны заполняться информацией с удаленного компьютера. Remote Process Explorer также имеет некоторые административные инструменты для удаленного управления. Вы можете завершить работу, исследовать, открыть консоли управления компьютером или службами, открыть программу просмотра событий, открыть сеанс удаленного рабочего стола или отправить сообщение и т. Д.
Хотя Remote Process Explorer не переносим, вы можете извлечь установщик установки с помощью Universal Extractor и сохранить содержимое папки {app}, чтобы превратить его в переносную версию.
Скачать Remote Process Explorer
2. Desktop Central Бесплатные инструменты для Windows
ManageEngine создает ряд коммерческих программных приложений для удаленных операций, корпоративных сетей и корпоративных решений. У них также есть набор приложений, называемый Desktop Central, который предназначен для больших сетей, но была предоставлена бесплатная версия, которая содержит ряд отдельных компонентов из основного набора.
В пакете Free имеется всего 12 инструментов, включая инвентаризацию программного обеспечения для получения удаленного списка установленного программного обеспечения, пробуждение по локальной сети, удаленную командную строку, средство удаленного выключения и перезапуска, детектор свободного места на жестком диске, монитор заряда батареи ноутбука и другие Ищите здесь, Remote Task Manager.
Диспетчер удаленных задач, хотя и является базовым, может показать вам список процессов, запущенных на удаленном компьютере, и позволяет убить процесс из списка. Просто введите имя и пароль удаленного пользователя в соответствующие поля, затем добавьте имя или IP-адрес удаленного компьютера в поля «Имя домена» и «Имя компьютера» и, наконец, нажмите кнопку «Получить процесс».
Окно затем заполнится списком процессов на удаленной машине, наведя курсор мыши на процесс, выбрав его, нажав «Завершить процесс», вы сможете завершить любой выделенный процесс. Значки выше предназначены для обновления списка и выбора дополнительных столбцов информации. Хотя для запуска диспетчера удаленных задач необходимо изначально установить бесплатные инструменты Windows, вы можете скопировать RemoteTaskManager.exe из папки Program Files и использовать его в качестве переносного инструмента, а затем снова удалить пакет.
Скачать Desktop Central бесплатные инструменты Windows
3. Remote Process Viewer
Remote Process Viewer – очень простая программа, которая предоставляет вам список всех процессов, запущенных в данный момент на удаленном компьютере. Полезный бонус – это также автономный переносимый исполняемый файл размером около 600 КБ, который не требует установки, хотя, если вы хотите сделать больше, чем просто посмотреть, что работает на целевом компьютере, вам нужно будет использовать что-то более мощное.
Поскольку он использует WMI для сбора информации, вам необходимо убедиться, что WMI разрешен через брандмауэр (см. Ниже). Затем все, что вам нужно сделать, это указать имя или IP-адрес удаленного компьютера или использовать кнопку «Обзор», чтобы найти компьютер в сети, а затем указать имя пользователя и пароль для входа в систему удаленного пользователя, и, наконец, нажать «Сканировать сейчас». ,
Через несколько секунд главное окно должно заполниться именем процесса, его папкой, идентификатором, используемой памятью, временем процессора, приоритетом и несколькими другими связанными частями информации. Нажав на процесс, вы сможете искать это конкретное имя процесса с помощью File.net и кнопки Google. Всплывающее окно бесполезно и указывает только на пробную версию диспетчера сетевых задач.
Скачать программу просмотра удаленных процессов
4. Еще один (удаленный) монитор процесса
Также известная как YAPM, это довольно многофункциональная программа, и помимо возможности просмотра процессов на локальном или удаленном компьютере, она также может выполнять ряд других удаленных функций. К ним относятся уничтожение существующих или открытие новых процессов, запуск, остановка, создание или отключение служб, просмотр и закрытие удаленных сетевых подключений, а также возможность показать, развернуть / свернуть или завершить текущие открытые задачи.
YAPM имеет два основных режима удаленной работы; Подключение через инструментарий управления Windows (WMI) или с использованием сервера YAPM. Использование WMI намного проще и не требует никаких дополнительных усилий, кроме проверки того, что соединение с удаленным компьютером работает. У него есть недостаток, хотя он не позволяет использовать столько функций, как управление задачами, мониторинг и управление сетью.
Сервер YAPM учитывает все удаленные функции, доступные в программе, но сам YAPM должен быть запущен на удаленном компьютере в режиме сервера для его работы, чего вы, возможно, не сможете сделать. Если вам не нужны дополнительные функции сервера YAPM, рекомендуется запускать в режиме WMI.
Чтобы настроить WMI, запустите программу и нажмите круглую кнопку «Настройки»> «Изменить тип подключения». Нажмите «Remote by WMI», введите имя или IP-адрес удаленного компьютера, имя пользователя и пароль, затем нажмите «Disconnect» и снова нажмите ту же кнопку, чтобы подключиться к удаленному компьютеру. Это заполнит соответствующие окна YAPM процессами и службами, где вы можете просматривать, запускать, останавливать и собирать информацию о каждом элементе. У этого также есть портативная версия.
Скачать еще один (удаленный) монитор процесса
5. Удаленный просмотр и удаление задач из командной строки
Windows имеет несколько встроенных утилит командной строки для выполнения различных задач, и два инструмента, которые полезны для этой работы, это «Список задач» и «Taskkill». Если вы откроете командную строку администратора (нажмите Пуск, введите cmd, нажмите Ctrl + Shift + Enter) и введите tasklist, он выдаст вам список запущенных процессов на вашем компьютере. Однако его можно использовать для получения списка задач с удаленного компьютера с несколькими дополнительными аргументами:
Список задач / S удаленная система (имя или IP-адрес) / U username / P пароль
Убедитесь, что в кавычках есть что-нибудь, в имени которого есть пробел. Это даст вам список имен удаленных процессов, запущенных на целевом компьютере, вместе с их идентификатором процесса (PID) и использованием памяти. Уничтожение процесса в списке достигается с помощью команды taskkill, синтаксис которой похож на список задач:
Taskkill / S удаленная система / U имя пользователя / P пароль / IM Process
Просто добавьте имя процесса (включая .exe) или номер PID, который вы хотите убить, вместе с аргументом «/ IM» после имени компьютера, имени пользователя и пароля. Если это работает, сообщение УСПЕХА покажет. Если процесс не будет убит, попробуйте добавить / F в конец строки, чтобы принудительно завершить процесс. Очевидно, что некоторые процессы не могут быть остановлены, например, те, которые являются критичными для системы, или программное обеспечение безопасности и т. Д.
Требования для включения удаленного просмотра и управления процессом
Если вы ранее не включали вашу систему для просмотра процессов удаленно, существуют некоторые требования, которые должны быть выполнены, чтобы подобные инструменты работали в локальной сети.
Замечания: Если у вас Windows Home или Basic Edition, например XP Home, Vista / 7 Basic или Home Premium, удаленное администрирование в этих версиях отключено, поэтому невозможно просматривать или контролировать процессы на другом компьютере. Однако вы можете подключиться к этим версиям из Профессиональной, Корпоративной или Максимальной версии Windows.
– Вы должны быть администратором или иметь права администратора для подключения к удаленному компьютеру.
– Убедитесь, что компьютер, к которому вы подключаетесь, имеет пароль в своей учетной записи, пустые пароли НЕ будут работать. Перейдите в Панель управления> Учетные записи пользователей> При необходимости создайте пароль для пользователя.
– Убедитесь, что простой обмен файлами отключен в Windows XP. Перейдите в Панель управления> Параметры папки> вкладка «Просмотр»> прокрутите вправо до низа в разделе «Дополнительные настройки»> снимите флажок «Использовать простой обмен файлами».
– Убедитесь, что в брандмауэре разрешено исключение общего доступа к файлам и принтерам, выберите «Пуск»> «Выполнить» и введите:
netsh firewall set тип службы = режим FILEANDPRINT = включить
– Для программ, использующих инструментарий управления Windows (WMI) для сбора данных с удаленного компьютера, необходимо убедиться, что WMI разрешен через любой активный брандмауэр. Ошибка сервера RPC распространена, если WMI блокируется брандмауэром. Для сторонних брандмауэров необходимо разрешить TCP-порт 135. Для брандмауэра Windows введите следующую команду в командной строке администратора для Vista, 7 и 8:
netsh advfirewall firewall set rule group = «e; инструментарий управления окнами (wmi)» e; новое разрешение = да
Или же перейдите в брандмауэр Windows на панели управления, нажмите «Разрешить программу или функцию через брандмауэр Windows» и установите флажок «Инструментарий управления Windows (WMI)». Нажмите ОК.
Для брандмауэра Windows XP используйте:
netsh firewall set service RemoteAdmin включить
Если у вас все еще есть проблемы с невозможностью подключения к удаленному компьютеру, вам может потребоваться временно отключить любой брандмауэр или другое защитное программное обеспечение, а затем попытаться подключиться.
PowerShell предоставляет широкие возможности управления процессами на локальном или удаленном компьютере. С помощью PowerShell можно получить список запущенных процессов, приостановить зависший процесс, найти процесс по заголовку окна, запустить новый процесс в скрытом или интерактивном режиме.
Список доступных командлетов управления процессами в Windows 10 можно вывести так:
Get-Command –Noun Process
- Get-Process – получить список запущенных процессов;
- Start-Process – запустить процесс/программу;
- Stop-Process – принудительно остановить процесс;
- Debug-Process – используется для отладки процессов;
- Wait-Process – используется для ожидания окончания процесса.
Содержание:
- Get-Process – получение списка запущенных процессов
- Start-Process, Stop-Process: запуск и остановка процессов из PowerShell
- PowerShell: управление процессами на удаленном компьютере
Get-Process – получение списка запущенных процессов
Командлет
Get-Process
позволяет вывести список запущенных процессов на локальном компьютере.
По-умолчанию выводятся следующие свойства запущенных процессов:
- Handles – количество дескрипторов ввода — вывода, которые отрыл данный процесс;
- NPM(K) — Non-paged memory (невыгружаемый пул). Размер данных процесса (в Кб.), которые никогда не попадают в файл подкачки на диск;
- PM(K) – размер памяти процесса, которая может быть выгружена на диск;
- WS(K) – размер физической памяти в Кб, используемой процессом (working set).
- CPU(s) – процессорное время, использованное процессом (учитывается время на всех CPU);
- ID — идентификатор процесса;
- SI (Session ID) – идентификатор сеанса процесса (0 — запущен для всех сессий, 1 – для первого залогиненого пользователя, 2 — для второго и т.д.);
- ProcessName – имя процесса.
Чтобы получить все свойства нескольких процессов:
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 | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle
С помощью параметра
IncludeUserName
можно вывести имя пользователя (владельца), который запустил процесс:
Get-Process -Name winword -IncludeUserName
С помощью Where-Object можно выбрать процессы в соответствии с заданными критериями. Например, выведем все процессы, которые используются более 200 Мб оперативной памяти, отсортируем процессы в порядке убывания используемого объема RAM, размер памяти из Кб преобразуем в Мб:
Get-Process| where-object {$_.WorkingSet -GT 200000*1024}|select processname,@{l="Used RAM(MB)"; e={$_.workingset / 1mb}} |sort "Used RAM(MB)" –Descending
Как мы уже говорили ранее командлет Get-Process в параметре CPU содержит время использования процессора конкретным процессом в секундах. Чтобы отобразить процент использования CPU процессами (по аналогии с Task Manager), используйте такую функцию:
function Get-CPUPercent
{
$CPUPercent = @{
Name = 'CPUPercent'
Expression = {
$TotalSec = (New-TimeSpan -Start $_.StartTime).TotalSeconds
[Math]::Round( ($_.CPU * 100 / $TotalSec), 2)
}
}
Get-Process | Select-Object -Property Name, $CPUPercent, Description | Sort-Object -Property CPUPercent -Descending | Select-Object -First 20
}
Get-CPUPercent
Чтобы найти зависшие процессы (которые не отвечают), выполните команду:
Get-Process | where-object {$_.Responding -eq $false}
Start-Process, Stop-Process: запуск и остановка процессов из PowerShell
Чтобы запустить новый процесс с помощью PowerShell используется команда:
Start-Process -FilePath notepad
Если каталог с исполняемым файлом отсутствует в переменной окружения $env:path, нужно указать полный путь к файлу:
Start-Process -FilePath 'C:distrapp.exe'
Можно запустить программу и передать ей аргументы:
Start-Process -FilePath ping -ArgumentList "-n 10 192.168.1.11"
С помощью параметра WindowStyle вы можете задать режим запуска окна процесса (normal, minimized, maximized, hidden). Например, чтобы запустить программу в максимально развернуом окне и дождаться завершения процесса, выполните команду:
Start-Process -FilePath tracert -ArgumentList "192.168.1.11" –wait -windowstyle Maximized
С помощью командлета Stop-Process можно завершить любой процесс. Например, чтобы закрыть все запущенные процессы notepad:
Stop-Process -Name notepad
По-умолчанию не запрашивается подтверждение завершения процесса. Закрываются все процессы, которые соответствуют указанным критериям. Чтобы запросить подтверждение завершения для каждого процесса, добавьте –Confirm.
Stop-Process -Name notepad.exe -Confirm
Также завершить процесс можно так:
(Get-Process -Name notepad).Kill()
Из PowerShell можно принудительно завершить все приложения, которые не отвечают диспетчеру процессов Windows:
Get-Process | where-object {$_.Responding -eq $false}| Stop-Process
PowerShell: управление процессами на удаленном компьютере
С помощью аргумента ComputerName командлет Get-Process позволяет управлять процессами на удаленных компьютерах (должен быть включен и настроен WinRM).
Get-Process -ComputerName dc01, dc02| Format-Table -Property ProcessName, ID, MachineName
Мы рассматриваем встроенные возможности комнадлета Get-Process для управления процессами на удаленных компьютерах. Здесь не учитываются возможности PowerShell Remoting, которые доступны в командлетах Invoke-Command и Enter-PSSession.
Если вы хотите завершить процесс на удаленном компьютере, имейте в виду, что у командлета Stop-Process отсутствует параметр –ComputerName. Для завершения процесса на удаленном компьютере можно использовать такой PowerShell код:
$RProc = Get-Process -Name notepad -ComputerName dc01
Stop-Process -InputObject $RProc
Содержание
- Просмотр системной информации и управление процессами из CMD или PowerShell
- 1. Используйте команду systeminfo для получения системной информации
- 2. Используйте команду tasklist, чтобы увидеть список запущенных процессов в Windows
- 3. Используйте команду taskkill, чтобы остановить процесс
- Управление процессами Windows через CMD
- Управление приложениями, процессами и производительностью
- Примеры управления процессами через командную строку
- Анализ выполняемых процессов в командной строке
- Мониторинг процессов и использования системных ресурсов
- Останов процессов в командной строке
- Системные и пользовательские процессы
- Управление процессами из командной строки
- Как посмотреть список процессов в Windows на удаленном компьютере
- Управление процессами Windows из командной строки
Просмотр системной информации и управление процессами из CMD или PowerShell
Самый простой способ просмотра информации о вашем компьютере — использовать графические инструменты Windows, такие как диспетчер задач или системная информация. Однако некоторые люди предпочитают использовать командную строку или PowerShell практически для чего угодно. Если вам интересно, как получить системную информацию в CMD (командная строка), или если вы хотите узнать, как управлять запущенными процессами из командной строки, читайте дальше. Мы собираемся показать, как вы можете делать все эти вещи
ПРИМЕЧАНИЕ. Информация в этом руководстве относится к Windows 10, Windows 8.1 и Windows 7, и команды работают как в командной строке, так и в PowerShell.
1. Используйте команду systeminfo для получения системной информации
В Windows есть встроенная команда для проверки конфигурации системы. Он называется systeminfo и, когда вы его запускаете, показывает длинный список информации о вашем компьютере. Откройте командную строку или PowerShell, введите systeminfo и нажмите Enter.
Вы видите, что происходит? Команда systeminfo отображает список деталей о вашей операционной системе, компьютерном оборудовании и программных компонентах. Вы видите детали, такие как версия операционной системы, установленной на вашем компьютере, состояние вашей оперативной памяти или процессора, который у вас есть. Также есть некоторая информация о сети, такая как IP и MAC- адреса ваших сетевых карт.
2. Используйте команду tasklist, чтобы увидеть список запущенных процессов в Windows
Чтобы просмотреть список запущенных процессов, вы можете использовать команду tasklist, как в командной строке, так и в PowerShell. Введите список задач и нажмите Enter.
Команда должна вывести список, аналогичный приведенному выше, с подробной информацией об именах запущенных процессов, их PID (идентификатор процесса) и используемой ими памяти.
3. Используйте команду taskkill, чтобы остановить процесс
Есть моменты, когда вам нужно открыть программу дважды или даже несколько раз. Каждое новое окно, а иногда и вкладки определенной программы (например, Firefox) создают отдельный процесс, называемый экземпляром, с прикрепленным к нему уникальным PID (идентификатор процесса).
Если вы хотите завершить процесс с PID 2492, вам нужно набрать taskkill /PID 2492 и нажать Enter.
Обратите внимание, что если вы неправильно используете команды, перечисленные в этой статье, вы рискуете потерять данные, открытые в запущенных процессах. Важно быть осторожным и иметь резервную копию ваших данных. Поэтому действуйте осторожно и не говорите, что мы вас не предупреждали. 🙂
Вам нравится использовать командную строку для проверки системной информации и управления запущенными процессами?
Вы знаете, как отобразить системную информацию вашего ПК и как остановить процессы, используя несколько текстовых команд в командной строке или PowerShell. Вы не чувствуете себя сейчас отвратительно? Если вы это сделаете, прокомментируйте ниже и расскажите, насколько вам нравится использование CMD или PowerShell. 🙂
Источник
Управление процессами Windows через CMD
Управление приложениями, процессами и производительностью
Всякий раз, когда операционная система или пользователь запускает службу, приложение или команду, Microsoft Windows запускает один или более процессов для управления соответствующей программой. Несколько утилит командной строки упростят вам мониторинг программ и управление ими. К этим утилитам относятся:
Примеры управления процессами через командную строку
Анализ выполняемых процессов в командной строке
При помощи утилиты командной строки Tasklist можно проверить процессы, работающие в локальной или удаленной системе. Tasklist позволяет:
Мониторинг процессов и использования системных ресурсов
Process Resource Monitor (Pmon) показывает «моментальный снимок» используемых системных ресурсов и выполняемых процессов. После запуска (вводом pmon в командной строке) эта утилита собирает информацию об использовании ресурсов и выполняемых процессах в локальной системе и выводит результаты в консольное окно. Статистика автоматически обновляется каждые пять секунд. Pmon продолжает работу, пока вы не нажмете клавишу Q для выхода; нажатие любой другой клавиши приводит к обновлению информации.
Останов процессов в командной строке
Чтобы остановить процессы в локальной или удаленной системе, применяйте утилиту командной строки Taskkill. Процесс можно остановить по его идентификатору при помощи параметра /Pid или по имени образа
Системные и пользовательские процессы
Процессы могут работать и в фоновом режиме независимо от сеансов зарегистрированных пользователей. Фоновые процессы не имеют контроля над клавиатурой, мышью или другими устройствами ввода и обычно запускаются операционной системой. Но с помощью Task Scheduler (Планировщик заданий) пользователи тоже могут запускать процессы в фоновом режиме, и эти процессы способны работать независимо от того, зарегистрирован ли пользователь в системе.
Источник
Управление процессами из командной строки
Способов управлять процессами в Windows предостаточно, и командная строка занимает в них далеко не первое место. Однако иногда бывают ситуации, когда все остальные инструменты кроме командной строки недоступны, например некоторые вредоносные программы могут блокировать запуск Task Manager и подобных ему программ. Да и просто для общего развития полезно знать способы управления компьютером из командной строки.
Для управления процессами в командной строке есть две утилиты — tasklist и taskkill. Первая показывает список процессов на локальном или удаленном компьютере, вторая позволяет их завершить. Попробуем …
Если просто набрать команду tasklist в командной строке, то она выдаст список процессов на локальном компьютере.
По умолчанию информация выводится в виде таблицы, однако ключ /fo позволяет задать вывод в виде списка или в формате CSV, а ключ /v показывает более подробную информацию о процессах, например команда tasklist /v /fo list выведет подробное описание всех процессов в виде списка.
Найдя процессы, которые необходимо завершить, воспользуемся командой taskkill. Завершать процессы можно по имени, идентификатору процесса (PID) или задав условия с помощью фильтров. Для примера запустим несколько экземпляров блокнота (notepad.exe) и попробуем завершить его разными способами.
Ключ /f завершает процесс принудительно, а /t завершает все дочерние процессы.
Полную справку по командам tasklist и taskkill можно получить, введя их с ключом /?
Теперь пустим в ход тяжелую артиллерию — PowerShell. Его можно запустить не выходя из командной строки. Для получения списка процессов используем командлет Get-Process.
Чтобы не выводить весь список процессов можем воспользоваться командлетом Where-Object, который задает фильтр для выводимой информации. Для примера выведем список процессов, которые загружают процессор и отсортируем их по возрастанию нагрузки с помощью команды:
С помощью PowerShell мы можем получить любую информацию о любом процессе. В качестве примера возьмем процесс cmd и выведем список его свойств командой:
Выбираем те свойства, что нам интересны ( в примере имя и ID процесса, путь к файлу, используемые модули и время запуска) и выводим их в виде списка командой:
Таким образом мы можем посмотреть когда и кем был запущен процесс, сколько он потребляет ресурсов, где находится исполняемый файл и еще много различной информации.
Для завершения процесса в PowerShell есть командлет Stop-Process. Он завершает указанный процесс по его имени или идентификатору. Однако мы поступим по другому и передадим результат выполнения командлета Get-Process по конвейеру:
Для боле полного ознакомления с PowerShell можно воспользоваться встроенной справкой, для вызова справки нужно набрать Get-Help ″имя командлета″
Ну и для полноты обзора рассмотрим еще одно средство для управления процессами из командной строки. Это утилиты Pslist и Pskill входящие в состав пакета PSTools от компании Sysinternals.
Эти утилиты не требуют специальной установки, достаточно просто скопировать их на диск. Для запуска нужно зайти в папку с утилитами и ввести в командной строке необходимую команду.
Завершение процесса программой pskill предельно просто, вводим команду и имя (или ID) процесса и все.
Справку по утилитам Pslist и Pskill можно посмотреть, введя команду с ключом /?
И еще, все манипуляции с процессами необходимо выполнять с правами администратора, для этого командную строку требуется запускать с повышением привилегий.
Источник
Как посмотреть список процессов в Windows на удаленном компьютере
Бывает так, что нам нужно посмотреть, запущена та или иная программа на удаленном компьютере. Просто и быстро. Без стороннего софта. Ну или по каким-то другим причинам посмотреть запущенные процессы.
Если говорить о локальном компьютере, то абсолютное большинство использует для мониторинга процессов Windows Диспетчер задач. Но вот в случае с удаленным компьютером он нам не помощник. Рассмотрим очень простой способ.
tasklist [/S имя_удаленного_компьютера [/U имя_пользователя [/P пароль]]] [/M модуль | /SVC | /V] [/FI фильтр] [/FO формат] [/NH]
/S — необходимо указать имя удаленного компьютера, если подключаемся к такому. Для локального компьютера не указывается;
/U — имя пользователя, от которого будут просматриваться процессы. Пользователь должен быть администратором;
/P — пароль от указанной учетной записи пользователя, если пароль не указан, будет выполнен запрос на ввод пароля;
/M — отображение всех процессов, которые используют указанное имя. Если не задано, будут отображаться все процессы;
/SVC — отображение служб для каждого процесса;
/V — ведение подробного протоколирования;
/FI — отображение процессов, которые соответствуют указанному фильтру;
Таким образом, если нам просто нужно посмотреть список запущенных процессов на локальном компьютере, то достаточно просто набрать
Пример вывода команды tasklist.
Если же мы хотим посмотреть процессы на удаленном компьютере (например, с именем Test-PC), то команда должна выглядеть следующим образом:
Использование фильтров в команде tasklist.
Начнем с того, что фильтр заключается в кавычки. Далее идёт очень простая схема:
[имя_фильтра] [оператор] [значение]
Есть ограниченное число имён фильтров, операторов и значений. Они в таблице ниже.
Имя фильтра | Допустимые операторы | Допустимые значения | Описание |
STATUS | eq, ne | RUNNING, SUSPENDED, NOT RESPONDING, UNKNOWN | Статус процесса |
IMAGENAME | eq, ne | Имя (часть имени) процесса(-ов) | Подходящие по наименованию процессы |
PID | eq, ne, gt, lt, ge, le | Значение PID | Идентификатор процесса |
SESSION | eq, ne, gt, lt, ge, le | Номер сеанса | Номер сеанса в Windows |
SESSIONNAME | eq, ne | Имя сеанса | Имя сеанса в Windows |
CPUTIME | eq, ne, gt, lt, ge, le | Время ЦП в формате чч:мм:сс (часы:минуты:секунды) | Время обработки задачи |
MEMUSAGE | eq, ne, gt, lt, ge, le | Используемая ОЗУ (в КБ) | Размер используемой задачей оперативной памяти |
USERNAME | eq, ne | Имя пользователя | Пользователь, из-под которого запущен процесс |
SERVICES | eq, ne | Имя службы | Используемые службы |
WINDOWTITLE | eq, ne | Заголовок окна | Заголовок окна процесса |
MODULES | eq, ne | Имя dll (динамически подключаемой библиотеки) | Используемые библиотеки |
Отметим, что для удаленных компьютеров не действуют фильтры «WINDOWTITLE» и «STATUS».
Используемые операторы сравнения означают следующее:
eq — равно;
ne — не равно;
gt — больше;
lt — меньше;
ge — больше или равно;
le — меньше или равно.
Синтаксис фильтров является, пожалуй, самой сложной частью. Все следующие примеры проще. Тот же просмотр служб, относящихся к задачам, вызывается следующей командой:
Просмотр используемых служб в команде tasklist.
Если мы хотим вывести информацию в файл, то нужно использовать параметр /FO. Конечно же, у вас должны быть права на запись в каталог, куда вы хотите поместить файл с выводимой информацией. Команда
Что, если нам надо посмотреть какие процессы используют определенную dll-библиотеку? Например, библиотеку cfgmgr32.dll. Это можно сделать командой
Источник
Управление процессами Windows из командной строки
Для управления процессами Windows существует много разных утилит и приложений. Как правило, для этих целей командная строка используется очень редко. Но в некоторых случаях, это единственная возможность и другие средства недоступны. Такое может возникнуть при блокировке стандартных диспетчеров различными вирусами и другими, нехорошими программами. Поэтому, будет очень полезно знать и уметь работать с процессами через командную строку.
Чтобы управлять процессами, при помощи возможностей командной строки, в системе предусмотрено два специальных приложения: tasklist и taskkill. Из их названия можно догадаться и об их предназначении — первое может отображать список всех запущенных процессов на данном компьютере, или на удаленной машине, а вторая умеет их останавливать. Давайте глянем, как это работает на практике.
Введите, в окне терминала, tasklist и командная строка выдаст весь список рабочих процессов на данном компьютере.
Все данные будут отображаться в табличной форме, но можно поменять вид данных в другой формат. Воспользуйтесь параметром /fo и все отобразится в виде списка (или как CSV), а если использовать параметр /v, то в этот список будут включены более подробные данные о каждом процессе. Введите команду taskliist /v /fo list (без кавычек естественно) и в окне должна появиться приблизительно такая картина.
Обычно список выходит немалых размеров, и чтобы не листать его слишком долго, выполним более точный запрос. Для этих целей существует параметр /fi, способный уточнить поиск процессов используя фильтры. Для примера, введем команду, которая отобразит все процессы, запущенные от имени пользователя user и занимающие до 40 мегабайт в памяти компьютера. Команда выглядит следующим образом: tasklist /fi »username eq user» /fi »memusage le 40000». А на рисунке ниже представлен результат работы команды.
Допустим, мы нашили процессы, которые хотим завершить. Теперь настал черед утилиты «taskkill». Для прекращения работы процесса можно использовать его имя, или идентификатор PID, а можно прекращать процессы используя разные фильтры. Для эксперимента, мы запустим несколько окон программы Блокнот (notepad.exe) и на них испытаем разные способы.
При помощи параметра /f процесс будет завершен в принудительном порядке, а если добавить еще ключ /t — завершатся все другие, которые были через него запущенны. Чтобы узнать больше возможностей, для команд tasklist и taskkill, добавьте к ним ключ /?. Он отобразит полную справку для этих утилит. Не будем забывать про такое мощное средство, как PowerShell. Мы можем им воспользоваться и прям в этом же окне командной строки. Чтобы просмотреть весь список процессов, запустите команду Get-Process.
Результат будет иметь приблизительно такой вид:
Здесь можно получить полную информацию о любом запущенном процессе. Сейчас мы узнаем список всех свойств процесса cmd. Это можно сделать при помощи такой команды:
Выведем только нужные свойства. Например, оставим только имя, идентификатор процесса, путь к его исполнительному файлу, подключенные модуле и время, когда процесс был запущен. Все это мы выводим списком, при помощи такой команды:
Благодаря этому мы узнаем о том, кто запустил процесс, как сильно он грузит систему, где располагается его файл и еще кучу разной, полезной и не очень информации.
Чтобы остановить процесс через PowerShell используйте специальный командой Stop-Process. Для того, чтобы указать нужный процесс для завершения, используйте его имя или идентификатор. Например, можно по конвейеру прекратить работу блокнота:
Для работы с процессами на другом, удаленном компьютере необходимо использовать совсем другой командой — Get-WmiObject. Сейчас посмотрим, какие процессы запущенны на компьютере с именем «PC»:
Чтобы узнать больше информации и различных ключей, для работы с процессами через PowerShell, используйте встроенную справку. Запустите команду Get-Help «имя команды» и появится справка по указанному параметру. Есть еще две дополнительные утилиты, способные выполнять операции с процессами. Ими являются Pslist и Pskill. Изначально их в системе нет, они входят в пакет PSTools.
Сами по себе эти приложения не нуждаются в установке. Их достаточно скопировать в любое место на своем жестком диске. Чтобы запустить, зайдите в папку, где они хранятся, и активируйте нужной командой.
Завершить любой процесс можно при помощи утилиты Pskill. Введите эту команду и идентификатор процесса, или его имя. На рисунке ниже можете посмотреть, как это будет выглядеть в случае с бедным блокнотом.
Дополнительную информацию, в виде справки, можно открыть дополнительным параметром /?
Самый главный момент — командная строка, во всех случаях, должна быть запущена от имени администратора, иначе ничего не получится. Но если столкнетесь с какими-либо сложными проблемами, или возникнут вопросы, то всегда можно этим поделиться в комментариях к данной статье, и мы вместе постараемся разобраться.
Источник