Taskkill - завершение процесса из командной строки. Закрыть процесс через командную строку


Завершить процесс из командной строки

Список процессов в командной строкеВы наверняка знакомы с традиционным способом завершить процесс в Windows с помощью диспетчера задач. Этот способ эффективен, но способ с использованием командной строки дает больше контроля и возможность завершить несколько процессов за раз.Возможность завершить процесс из командной строки дает нам команда TaskKill. Вы можете убить процесс из командной строки по его идентификатору (PID) или по имени образа (имени exe файла). Запустите консоль от имени администратора и введите команду tasklist, чтобы просмотреть все запущенные процессы.

C:\tasklist Имя образа PID Имя сессии № сеанса Память ========================= ======== ================ =========== ============ System Idle Process 0 Services 0 24 КБ System 4 Services 0 1 256 КБ conhost.exe 5944 Console 2 2 888 КБ notepad.exe 3100 Console 2 7 400 КБ tasklist.exe 8892 Console 2 6 100 КБ WmiPrvSE.exe 7340 Services 0 6 864 КБ smss.exe 372 Services 0 544 КБ csrss.exe 536 Services 0 3 336 КБ wininit.exe 812 Services 0 436 КБ

В приведенном выше примере можно увидеть имя образа и PID для каждого процесса. Если вы хотите убить процесс Notepad? то нужно ввести:

taskkill /IM notepad.exe /F

или

taskkill /PID 3100 /F

Флаг /F — нужен для принудительного завершения процесса. Если его не использовать, то в некоторых случаях ничего не произойдет, приложение продолжит свою работу. Как пример попытка завершения процесса explorer.exe без этого флага ни к чему не приведет.

Если у вас есть несколько экземпляров приложений, как например chrome, то выполнение команды taskkill /IM. chrome.exe завершит их все. При указании PID можно завершить только конкретные процессы Chrome.

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

Переменные

  • STATUS (статус)
  • IMAGENAME (имя образа)
  • PID (значение)
  • SESSION (номер сессии)
  • CPUTIME (время CPU)
  • MEMUSAGE (использование памяти в кб)
  • USERNAME (имя пользователя)
  • MODULES (имя DLL)
  • SERVICES (имя службы)
  • WINDOWTITLE (заголовок окна)

Операторы

  • eq (равно)
  • ne (не равно)
  • gt (больше чем)
  • lt (меньше чем)
  • ge (больше или равно)
  • le (меньше или равно)
  • * (любые символы)

Вы можете использовать переменные и операторы с флагом /FI.

Например, допустим вы хотите, завершить все процессы, у которых заголовок окна начинается с «Интернет», то команда будет следующей:

taskkill /FI «WINDOWTITLE eq Internet*» /F

Чтобы завершить все процессы запущенные от имени Marina:

taskkill /FI «USERNAME eq Marina» /F

Таким же образом можно завершить процесс запущенный на другом компьютере из командной строки. Например имя компьютера OperatorPC, необходимо ввести:

taskkill /S OperatorPC /U Имя_пользователя_на_удаленной_машине /P Пароль_от_удаленной_машины /IM notepad.exe /F

Подробную информацию вы всегда можете получить запустив taskkill с ключом /?

taskkill /?

allerrorcodes.ru

Закрыть программы из командной строки (Windows) Bilee

What is the proper way to close/exit programs from command line, similar to pressing the "X" close button in the corner of the window?

Ответ на этот вопрос можно найти here ( ссылка Microsoft ).

Вы можете отправлять сообщения WM_CLOSE в любое окно, которое вы хотите закрыть. Многие окна обрабатывают WM_CLOSE чтобы предложить пользователю сохранить документы.

Инструмент, который делает это правильно, – @Kill . Посмотрите также SendMsg .

Я не знаю, как это сделать в пакетном режиме, но вы можете использовать vbscript для этого. Имитация клавиш Alt + F4 (соответствует сигналу WM_CLOSE ).

Запустите и посмотрите на поведение этого скрипта ниже.

Set WshShell = WScript.CreateObject("WScript.Shell") ' Start Notepad.exe WshShell.Run "%windir%\notepad.exe" ' Select, or bring Focus to a window named `Notepad` WshShell.AppActivate "Notepad" ' Wait for 4 seconds WScript.Sleep 4000 WshShell.SendKeys "Foo" WshShell.SendKeys "{ENTER}" WshShell.SendKeys "Bar" WshShell.SendKeys "{ENTER}" WshShell.SendKeys "{CAPSLOCK}" WshShell.SendKeys "baz" WshShell.SendKeys "%{F4}"

Here имена ключей списка для SendKeys.

Когда вы запускаете скрипт, блокнот открыт, некоторые слова записываются, а затем передается сигнал для закрытия программы, см. Рисунок ниже.

Дополнительный вопрос

Могу ли я запустить программу с минимизацией или фон с помощью vbscript?

Да. Используйте следующий код:

WshShell.Run "%windir%\notepad.exe", 2

Для получения дополнительной информации проверьте Run Method .

Может ли хром перейти к некоторому URL-адресу в vbscript?

Dim iURL Dim objShell iURL = "www.google.com" set objShell = CreateObject("Shell.Application") objShell.ShellExecute "chrome.exe", iURL, "", "", 1

Если хром является значением по умолчанию, используйте:

set objShell = CreateObject("WScript.Shell") objShell.run(iURL)

Source

Есть ли способ привлечь внимание к конкретному приложению ( chrome.exe )?

Here в примере.

Я хочу отправить alt + f4 ТОЛЬКО на хром, независимо от того, что я делаю с другими окнами.

Следующий код работает в Windows 8 .

Dim objShell iURL = "www.google.com.br" Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run(iURL) ' Select, or bring Focus to Google Chrome WshShell.AppActivate "Google Chrome" ' Wait for 5 seconds WScript.Sleep 5000 WshShell.SendKeys "%{F4}"

www.bilee.com

Как закрыть зависшую программу?

Все из нас сталкивались с приложением, утилитой или видеоигрой, которая просто зависает и ничего с ней поделать не удается. Вот зависла она и все на этом. В эти моменты хочется взять и отключить ее, но не все так просто, так как она не поддается на простое нажатие Крестика. Так что же делать в этой ситуации?

Если вы читаете эту статью, то вы определенно новичок в пользовании такое занятной вещицы, как компьютер на операционной системе Windows. Вы либо каким-то чудом закрыли зависшее приложение и пытаетесь понять, как избежать этого в будущем, либо оно “висит” у вас в настоящее время и вы хотите его закрыть, но не знаете как.

Что же, эта статья вам определенно поможет, так как в ней мы опишем огромное количество методов закрытия того или иного приложение в операционной системе Windows. Поверьте — закрыть можно не только нажатие на Крестик, хотя и им тоже. Как и во всех наших статьях, мы начнем с самых простых, возможно очевидных, методов.

Содержание статьи

Как закрыть зависшую программу?

Многократное нажатие на Крестик

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

Закрытие программы через Панель задач

Самый логичный способ закрытия окна с программой, сразу после нажатия на Крестик. По факту, первый и второй способы являются одним и тем же действием, но практика показывает, что этот метод срабатывает куда чаще. Вот небольшой пример того, как это сделать, если вы совсем зеленый:

  • Найдите в Панели задач(полоска Пуск) запущенную и зависшую программу.
  • Нажмите на нее правой кнопкой мыши.
  • Выберите из контекстного меню пункт “Закрыть окно”.

Если это не сработало, то можете попытаться выполнить это действие несколько раз. Факт — это тоже работает, так что обязательно попробуйте.

Alt+F4

К счастью, существует краткая команда для закрытия активной программы. Тут все довольно просто: нажмите одновременно клавиши Alt и F4 на клавиатуре и запущенная в данный момент программа, утилита или видеоигра должна будет закрыться…в идеале. Как и с прошлыми методами — попробуйте нажать эту комбинацию несколько раз, так как может помочь разрешить ситуацию.

Вызов Диспетчера задач

Утилита под названием Диспетчер задач является одной из самых полезных и главных утилит в вашей операционной системе Windows, которая стоит наряду с такими элементами, как Командная строка или Проводник Windows. С помощью этой полезной утилиты вы можете проводить мониторинг потребляемых ресурсов вашего компьютера на открытые утилиты, проверить активность сети, настроить автозагрузку и тому подобное.

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

  • Для начала вам нужно запустить Диспетчер задач. Выполнить это можно несколькими способами: нажать комбинацию клавиш Ctrl+Shift+Esc, нажать правой кнопкой мыши на Панель задач и выбрать из контекстного меню пункт “Диспетчер задач”, нажать комбинацию клавиш Ctrl+Alt+Delete и выбрать из пунктов “Диспетчер задач”. Выберите наиболее удобный для вас способ и откройте Диспетчер задач.
  • Затем перейдите во вкладку “Процессы” и найдите в списках работающий программ ту самую, которая все никак не закрывается.
  • Нажмите на нее правой кнопкой мыши и выберите “Снять задачу”.
  • Если ничего не произошло, то попробуйте выполнить это несколько раз.

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

Однако, даже это может вам не помочь в решении ситуации, что, конечно же, вероятно для Windows. Если произошло именно это, то сейчас мы рассмотрим более кардинальные способы.

Перезапуск Проводника Windows

Вот что нужно сказать про Проводник Windows. Все что вы видите на своем рабочем столе, т.е. папки, значки, элементы Пуска, окна различных программ и тому подобное — все эти элементы являются Проводником Windows. Порой вся эта система начинает сбоить, вследствие чего и могут зависать приложения и наоборот — из-за зависших приложений может начать сбоить Проводник. Так или иначе, не так важно какова причина, а важно то, что решается эта проблема простым перезапуском Проводника. Для этого сделайте следующее:

  • Для начала откройте Диспетчер, как это уже было показано в методах вверху.
  • Найдите в списке запущенных программ процесс под названием “Проводник” или “explorer.exe”.
  • Кликните на него правой кнопкой мыши и выберите “Снять задачу”, либо же “Завершить процесс”.

Заметка: название процессов и действия могут слегка различаться в разных операционных системах Windows, но они все же будут синонимичны между собой.

После закрытия Проводника, весь интерфейс Windows исчезнет, т.е. на экране вы будете видеть только лишь обои рабочего стола. Кстати, Проводник может выключиться и самостоятельно, что может привести новичков в пользовании Windows просто в настоящую панику. Так вот, после отключения Проводника его нужно снова запустить. Сделать это можно даже без интерфейса:

  • Нажмите комбинацию клавиш Win+R для запуска утилиты “Выполнить”.
  • Затем пропишите в пустой строке explorer и нажмите Ок.

После этого проблемная утилита определенно должна будет быть закрыта.

Закрытие программы через Командную строку

Если ничего из вышеописанного не помогло, то пришло время обращаться за помощью к тяжелой артиллерии — Командной строке. Если вы довольно зеленый в обращении с ПК, то вам, вероятно, еще не приходилось обращаться с Командной строкой. Что представляет собой этот элемент операционной системы?

Если кратко, то Командная строка — это утилита, с помощью которой вы можете управлять своей системой при помощи текстовых команд без участия графических элементов. Можно сказать, что данная утилита — это один из самых важных и мощных инструментов, использование которого просто необходимо в некоторых ситуациях. Закрытие упорно не поддающиеся программы как раз входит в список таких ситуаций. Для закрытие программы через Командную строку, сделайте следующее:

  • Открыть Командную строку можно многими способами. Самый простой из них — нажмите правой кнопкой мыши на “Пуск” и выберите “Командная строка(администратор)”.
  • Затем впишите в строку команду tasklist.

Перед вами появиться список всех запущенных программ на вашем компьютере в данный момент. Напротив каждого из них будет номерной идентификатор процесса. Найдите проблемную и все еще не закрывающуюся программу, и запомните ее PID.Далее введите в командную строку команду taskkill /pid **** и нажмите Enter.

После этого ваш процесс должен будет закрыться. Но если и это не смогло ликвидировать его работу, что может случиться все-таки случиться, то придется прибегнуть к еще более жестким методам.

Выход из Учетной записи

Просто выйдя из своей учетной записи, вы сможете закрыть все программы работающие на своем компьютере, но при этом вы не будете перегружать свой ПК. В различных версиях операционной системы Windows выйти из своей учетной записи можно по разному. Обычно, данная опция будет находится рядом с опцией отключения компьютера в Пуск. На более современных ОС, по типу Windows 8-10, вам нужно нажать на свое имя в меню Пуск и выбрать “Выйти”.

После выхода из своей Учетной записи, снова войдите в нее. В этот раз ваше проблемное приложение определенно должно уже закрыться, иначе никак. Но, если произошло чудо и это, мы должны признаться, непобедимое приложение все не унимается, то есть только лишь одно решение в этой довольно непростой ситуации — перезагрузка компьютера. Здесь описывать нечего, так как это знают как делать даже самые мало подготовленные пользователи.

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

gamesqa.ru

Можно ли через командную строку закрыть приложение?

Ответ

Можно закрывать не саму программу, а процесс, описание взято с сайта WinPlanet:

TASKKILL завершение одного или нескольких процессов.

Описание:Эта команда позволяет завершить один или несколько процессов.Процесс может быть завершен по имени образа или по идентификатору процесса.

Список параметров:/S Подключаемый удаленный компьютер.

/U [ ] Пользовательский контекст, в которомдолжна выполняться эта команда.

/P Пароль для этого пользовательского контекста.Запрашивает пароль, если он не задан.

/F Принудительное завершение процесса

/FI Отображение задач, отвечающихуказанному в фильтре критерию.

/PID Идентификатор процесса, который требуетсязавершить.

/IM Имя образа процесса, который требуетсязавершить. Для указания всех процессовможно использовать символ шаблона ‘*’.

/T Завершение указанного процессаи всех его дочерних процессов.

/? Вывод справки по использованию.

Фильтры:Имя фильтра Допустимые операторы Допустимые значения———– ——————– ——————-STATUS eq, ne RUNNING | NOT RESPONDINGIMAGENAME eq, ne Имя образаPID eq, ne, gt, lt, ge, le Значение PIDSESSION eq, ne, gt, lt, ge, le Номер сессииCPUTIME eq, ne, gt, lt, ge, le Время CPU в форматеhh:mm:ss.hh – часы,mm – минуты, ss – секундыMEMUSAGE eq, ne, gt, lt, ge, le Использование памяти в КБUSERNAME eq, ne Имя пользователя в формате[ ] MODULES eq, ne Имя DLLSERVICES eq, ne Имя службыWINDOWTITLE eq, ne Заголовок окна

Примечание: Символ ‘*’ для параметра /IM применим только совместно с фильтрами.

Примечание: Завершение удаленных процессов всегда будет принудительным,независимо от того, был ли использован параметр /F или нет.

Примеры:TASKKILL /S /F /IM notepad.exe /TTASKKILL /PID 1230 /PID 1241 /PID 1253 /TTASKKILL /F /IM notepad.exe /IM mspaint.exeTASKKILL /F /FI «PID ge 1000

Источник: http://winplanet.ru/

www.moscow-faq.ru

Управление процессами из командной строки

Способов управлять процессами в Windows предостаточно, и командная строка занимает в них далеко не первое место. Однако иногда бывают ситуации, когда все остальные инструменты кроме командной строки недоступны, например некоторые вредоносные программы могут блокировать запуск Task Manager и подобных ему программ. Да и просто для общего развития полезно знать способы управления компьютером из командной строки.

Для управления процессами в командной строке есть две утилиты — tasklist и taskkill. Первая показывает список процессов на локальном или удаленном компьютере, вторая позволяет их завершить. Попробуем …

Если просто набрать команду tasklist в командной строке, то она выдаст список процессов на локальном компьютере.

команда tasklist

 

По умолчанию информация выводится в виде таблицы, однако ключ /fo позволяет задать вывод в виде списка или в формате CSV, а ключ /v  показывает более подробную информацию о процессах, например команда tasklist /v /fo list выведет подробное описание всех процессов в виде списка.

команда tasklist

 

Список получится довольно большой, поэтому попробуем уточнить запрос.  Для этого используем ключ /fi , который позволяет использовать фильтры для вывода данных, например команда tasklist /fi ″username eq user″ /fi ″memusage le 40000″ выводит список процессов пользователя user, которые потребляют не больше 40Мб памяти.

команда tasklist

 

Найдя процессы, которые необходимо завершить, воспользуемся командой taskkill. Завершать процессы можно по имени, идентификатору процесса (PID) или задав условия с помощью фильтров. Для примера запустим несколько экземпляров блокнота (notepad.exe) и попробуем завершить его разными способами.

команда taskkill

 

Ключ /f завершает процесс принудительно, а /t завершает все дочерние процессы.

Полную справку по командам tasklist и taskkill можно получить, введя их с ключом /?

Теперь пустим в ход тяжелую артиллерию — PowerShell. Его можно запустить не выходя из командной строки. Для получения списка процессов используем командлет Get-Process.

командлет Get-Process

 

Чтобы не выводить весь список процессов можем воспользоваться командлетом Where-Object, который задает фильтр для выводимой информации. Для примера выведем список процессов, которые загружают процессор и отсортируем их по возрастанию нагрузки с помощью команды:

Get-Process | where {$_.cpu -gt 0} | sort cpu

фильтруем вывод процессов

 

С помощью PowerShell мы можем получить любую информацию о любом процессе. В качестве примера возьмем процесс cmd и выведем список его свойств командой:

Get-Process -Name cmd | Get-Member -Membertype property

смотрим свойства процесса cmd

 

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

Get-Process -Name cmd | Format-List name, id, path, modules, starttime

выводим свойства процесса

 

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

Для завершения процесса в PowerShell есть командлет Stop-Process. Он завершает указанный процесс по его имени или идентификатору. Однако мы поступим по другому и передадим результат выполнения командлета Get-Process по конвейеру:

Get-Process | where {$_.name -match ″notepad″}  | Stop-Process

завершаем процесс

 

Get-Process не может показать процессы на удаленном компьютере, для этого воспользуемся командлетом Get-WmiObject , например посмотрим процессы на удаленном компьютере PC командой:

Get-WmiObject win32_process -computername PC | ft name, processid, description

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

 

Для боле полного ознакомления с PowerShell можно воспользоваться встроенной справкой, для вызова справки нужно набрать Get-Help ″имя командлета″

Ну и для полноты обзора рассмотрим еще одно средство для управления процессами из командной строки. Это утилиты Pslist и Pskill входящие в состав пакета PSTools от компании Sysinternals.

Эти утилиты не требуют специальной установки, достаточно просто скопировать их на диск. Для запуска нужно зайти в папку с утилитами и ввести в командной строке необходимую команду.

команда pslist

 

Pslist может выводить информацию о процессах по имени или ID, например командой pslist notepad -x выведем подробную информацию о нашем «многострадальном» блокноте.

подробный вывод информации о процессе

 

Особенностью утилиты Pslist является режим task-manager. В  этом режиме информация автоматически обновляется, причем можно задать время работы и интервал обновления. Запускается режим ключом -s , например командой tasklist -s -r 10 запускаем режим программу в режиме task-manager с обновлением раз в 10 сек.

task-manager mode

 

Завершение процесса программой pskill предельно просто, вводим команду и имя (или ID) процесса и все.

завершение процесса

 

Справку по утилитам Pslist и Pskill можно посмотреть, введя команду с ключом /?

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

windowsnotes.ru

Завершение процессов в Windows командой taskkill

Команда taskkill позволяет завершить вышедший из под контроля процесс в Windows 7, если Диспетчер задач Windows 7 (Task Manager) не справляется с этой задачей.

Иногда возникает необходимость вручную завершить процесс, который не отвечает. В большинстве случаев это можно сделать с помощью Диспетчера задач Windows, однако порой ему не удается справиться с вышедшим из под контроля приложением. Мне часто приходилось сталкиваться с этим при попытке завершить процесс Acronis. В такой ситуации я обычно использую более мощный инструмент — команду taskkill.

Чтобы воспользоваться taskkill, нужно открыть окно командной строки. Для этого вызовите окно «Выполнить» (Run) из меню «Пуск» (Start) или воспользуйтесь клавишной комбинацией [Win]+[R] и введите «cmd» (без кавычек) в поле «Открыть» (Open, рис. A).

Завершение процессов в Windows командой taskkillРисунок A. Откройте окно командной строки.

Использование команды taskkill

Общий синтаксис команды выглядит следующим образом:

taskkill [ОПЦИИ] [ИДЕНТИФИКАТОР ПРОЦЕССА]Разумеется, для taskkill доступен широкий выбор опций. Перечислю лишь наиболее полезные из них:

• /s КОМПЬЮТЕР, где КОМПЬЮТЕР — это IP или адрес удаленного компьютера. По умолчанию, операция выполняется в локальной системе. Если именно это вас и интересует, данную опцию можно не использовать.

• /u ДОМЕН\ПОЛЬЗОВАТЕЛЬ, где ДОМЕН — это имя домена, а ПОЛЬЗОВАТЕЛЬ — имя пользователя, для которого нужно выполнить команду. Данная опция позволяет запускать taskkill с правами определенной учетной записи или домена.

• /p — обязательно используется в сочетании с опцией /u для указания пароля к учетной записи пользователя.

• /fi — позволяет выполнять команду taskkill с определенными фильтрами.

• /f — принудительно завершает выполнение команды.

• /IM — позволяет использовать имя приложения вместо идентификатора процесса.

Ну и разумеется, одна из самых полезных опций — переключатель для вызова справки (рис. В):

taskkill /?Завершение процессов в Windows командой taskkillРисунок B. Вывод справочной информации по команде taskkill при использовании переключателя справки.

Завершение процесса по имени приложения

Проще всего завершить вышедший из-под контроля процесс, воспользовавшись командой taskkill с использованием опции /IM. Выглядеть это будет так:

taskkill /IM ИМЯ_ПРИЛОЖЕНИЯЗдесь ИМЯ_ПРИЛОЖЕНИЯ — это имя процесса, который требуется завершить. К примеру, если Outlook не удается закрыть, можно воспользоваться следующей командой:taskkill /IM outlook.exeЗавершение процесса по идентификатора

Если вы не знаете имени процесса, но знаете его идентификатор (PID) — например, 572 — можно воспользоваться следующей командой:

taskkill /PID 572Завершение всех процессов для определенной учетной записи

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

taskkill /F /FI “USERNAME eq имя_пользователя”Здесь имя_пользователя — это имя учетной записи, под которой запущены нежелательные процессы. Обязательно нужно включить в команду опцию USERNAME, чтобы указать соответствующее имя пользователя.

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

Еще одна удобная возможность — завершение процессов в удаленном режиме. Допустим, вы точно знаете, что система не отвечает из-за определенного процесса (возьмем для примера все тот же Outlook). В таком случае можно воспользоваться другим компьютером и выполнить следующую команду:

taskkill /s IP-АДРЕС /u ДОМЕН\ПОЛЬЗОВАТЕЛЬ /IM Outlook.exeЗдесь IP-АДРЕС — адрес удаленного компьютера (можно использовать и имя хоста, если компьютеры способны распознавать друг друга таким способом), ДОМЕН — имя домена (если требуется), а ПОЛЬЗОВАТЕЛЬ — имя пользователя, под которым был осуществлен вход на удаленный компьютер.

В заключение

Команда taskkill — весьма мощный и функциональный инструмент, способный избавить от необходимости принудительной перезагрузки компьютера. Умелое использование этой команды в сочетании с Диспетчером задач продлевает время безотказной работы системы и даже позволяет бороться с вирусами, руткитами или троянцами.

Автор: Jack WallenПеревод SVET

Оцените статью: Голосов 21

www.winblog.ru

завершение процесса из командной строки

В данном видео мы рассмотрим команду Taskkill, которая позволяет завершать определенные процессы из командной строки в операционной системе Windows. Но в начале, как всегда, рассмотрим, зачем это вообще может понадобиться.

На обычных рабочих станциях данная команда не особо востребована, так как можно завершить процесс через диспетчер задач. Хотя, не всегда это получается и в данной ситуации команда Taskkill пригодится, но, это скорее исключение из правил.

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

1) Обновление программ на терминальном сервере – при администрировании терминального сервера большое количество людей может запустить одно и тоже приложение. Но, в большинстве случаев, при обновлении программы её необходимо сначала закрыть, т.е. завершить её процесс. Если клиентов не много, то, можно воспользоваться диспетчером задач, а если их порядка 100, то это уже проблематично. А команда Taskkill позволяет убить все процессы для определенного приложения.

2) Автоматический перезапуск программы – как вы знаете не все программы работают идеально и бывает, что они подвисают. А если данная программа должна работать 24 часа в сутки и 7 дней в неделю, то приходится периодически проверять её работоспособность.

Лично я сталкивался со следующей ситуацией: есть интернет магазин, в который данные о товарах выгружаются из 1С-ки. Но, обработчик написан как-то криво, в результате чего обмен подвисает раз в сутки, а то и через каждые 2-3 часа. По этому, появилась необходимость каждый час принудительно перезапускать обработчик, не зависимо от того, подвисла программа или нет.

И так, перейдем к практике.

Запустим браузер Google Chrome и попробуем завершить его процесс (Пуск \ Стандартные \ Выполнить \ cmd \ taskkill /? — чтобы посмотреть синтаксис команды)

/s КОМПЬЮТЕР, где КОМПЬЮТЕР — это IP или адрес удаленного компьютера. По умолчанию, операция выполняется в локальной системе. Если именно это вас и интересует, данную опцию можно не использовать.

/u ДОМЕН\ПОЛЬЗОВАТЕЛЬ, где ДОМЕН — это имя домена, а ПОЛЬЗОВАТЕЛЬ — имя пользователя, для которого нужно выполнить команду. Данная опция позволяет запускать taskkill с правами определенной учетной записи или домена.

/p — обязательно используется в сочетании с опцией /u для указания пароля к учетной записи пользователя.

/fi — позволяет выполнять команду taskkill с определенными фильтрами.

/f — принудительно завершает выполнение команды.

/IM — позволяет использовать имя приложения вместо идентификатора процесса.

/T — завершение дерева процессов.

Теперь нам нужно узнать имя приложения, которое использует данный процесс. Это можно сделать через диспетчер задач (Ctrl+Alt+Del \ Запустить диспетчер задач \ Процессы \ chrome.exe).

Если у вас нет возможности запустить диспетчер задач, допустим, вы подключились к компьютеру удаленно через командную строку, то можно воспользоваться командой tasklist, она так же отображает все процессы.

Taskkill /f /im chrome.exe – принудительно завершить приложение с именем chrome.exe

Chrome завершил работу, но появились ошибки «Не удалось завершить процесс, ни один из экземпляров задания не запущен». Данное сообщение появляется из-за того, что эти процессы были связанными и когда завершил работу основной, остальные автоматически завершились.

Теперь запустим Chrome под разными пользователями, чтобы сымитировать работу терминального сервера, для этого запустим под обычным пользователем и под пользователем XP (Chrome \ Shift \ ПКМ \ Запустить от имени другого пользователя \ ОК). Теперь мы видим, что одно и тоже приложение запущено под разными пользователями, повторим команду Taskkill /f /im chrome.exe, чтобы проверить, для всех ли пользователей будет завершен процесс.

Теперь попробуем сделать автоматический перезапуск приложения, в этом нам поможет планировщик задач (Пуск \ Все программы \ Стандартные \ Служебные \ Планировщик заданий \ Библиотека планировщика \ ПКМ \ Создать папку \ Перезапуск Chrome – в зависимости от вашей цели)

Создаем задачу на запуск (Создать новую задачу \ Запуск \ Выполнять с наивысшими правами \ Триггер: по расписанию, ежедневно, начиная с 11:00, повторять каждый час бесконечно, включено \ Действия: запуск программы, chrome \ ОК)

Создадим задачу на завершение процесса (Создать новую задачу \ Завершение \ Выполнять с наивысшими правами \ Триггер: по расписанию, ежедневно, начиная с 10:59:50, повторять каждый час бесконечно, включено \ Действия: запуск программы, Taskkill, дополнительные аргументы: /f /im chrome.exe \ ОК)

Теперь запустим Chrome и подведем часы к более близкому времени, чтобы увидеть, как Хром завершит работу, а потом запустится заново.

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

Дело в том, что, можно каждый час перезапускать зависшую 1С-ку, но, если завершать все процессы 1С, то все удаленные пользователи будут из неё вылетать, а этого нельзя допустить. По этому, нужно завершать процесс, запущенный из под определенной учетной записи.

Для этого в дополнительные аргументы добавим следующую строчку /fi “username eq station-4-7” данная команда фильтрует по имени пользователя и завершает процесс только того, чье имя совпадает с указанным в фильтре.

Запустим Chrome под другим пользователем и посмотрим, сработал ли фильтр.

Все отлично отработало!!!

 

 

sys-team-admin.ru