21
Компьютеры, периферия, мультимедиа и ПО / Завершить процесс на компьютере через командную строку
« : 10.09.14, 16:35:00 »
Задача - нужно удалить процесс на компьютере, который запущен от определенного пользователя больше определенного времени, желательно с логами.
tasklist / taskkill не катят.
Как выяснилось, получить данные о том, сколько времени прошло с момента запуска не получается.
taskkill /FI "USERNAME eq user" /FI "IMAGENAME eq cmd.exe" /FI "CPUTIME gt 00:10:00"
Не прокатывает. По какой-то причине, все процессы имеют CPUTIME никак не привязанные ко времени запуска. Через утилиту pslist выяснилось, что это Kernel Time. Наверное, это время, в течении которого процесс обрабатывается процессором. Если он тупо висит, то время = 0:00:00.
Например, запустил несколько cmd.exe от разных юзерей:
Имя образа PID Имя сессии № сеанса Память Состояние Пользователь Время ЦП Заголовок окна
cmd.exe 10252 Console 1 3 100 КБ Running user 0:00:00 Командная строка
cmd.exe 2188 Console 1 2 796 КБ Running user 0:00:00 Командная строка - tasklist /fi imagename eq cmd.exe" /v /FO csv"
cmd.exe 11172 Console 1 2 572 КБ Running admin 0:00:00 C:\Windows\system32\cmd.exe
По pslist.exe вот такая картинка:
cmd 10252:
Tid Pri Cswtch State User Time Kernel Time Elapsed Time
10180 14 1997 Wait:Executive 0:00:00.015 0:00:00.062 2:36:32.025
cmd 2188:
Tid Pri Cswtch State User Time Kernel Time Elapsed Time
11880 14 1433 Wait:UserReq 0:00:00.015 0:00:00.046 0:44:56.572
cmd 11172:
Tid Pri Cswtch State User Time Kernel Time Elapsed Time
8364 14 89 Wait:Executive 0:00:00.015 0:00:00.000 0:44:36.144
Какие ещё утилиты есть?
tasklist / taskkill не катят.
Как выяснилось, получить данные о том, сколько времени прошло с момента запуска не получается.
taskkill /FI "USERNAME eq user" /FI "IMAGENAME eq cmd.exe" /FI "CPUTIME gt 00:10:00"
Не прокатывает. По какой-то причине, все процессы имеют CPUTIME никак не привязанные ко времени запуска. Через утилиту pslist выяснилось, что это Kernel Time. Наверное, это время, в течении которого процесс обрабатывается процессором. Если он тупо висит, то время = 0:00:00.
Например, запустил несколько cmd.exe от разных юзерей:
Имя образа PID Имя сессии № сеанса Память Состояние Пользователь Время ЦП Заголовок окна
cmd.exe 10252 Console 1 3 100 КБ Running user 0:00:00 Командная строка
cmd.exe 2188 Console 1 2 796 КБ Running user 0:00:00 Командная строка - tasklist /fi imagename eq cmd.exe" /v /FO csv"
cmd.exe 11172 Console 1 2 572 КБ Running admin 0:00:00 C:\Windows\system32\cmd.exe
По pslist.exe вот такая картинка:
cmd 10252:
Tid Pri Cswtch State User Time Kernel Time Elapsed Time
10180 14 1997 Wait:Executive 0:00:00.015 0:00:00.062 2:36:32.025
cmd 2188:
Tid Pri Cswtch State User Time Kernel Time Elapsed Time
11880 14 1433 Wait:UserReq 0:00:00.015 0:00:00.046 0:44:56.572
cmd 11172:
Tid Pri Cswtch State User Time Kernel Time Elapsed Time
8364 14 89 Wait:Executive 0:00:00.015 0:00:00.000 0:44:36.144
Какие ещё утилиты есть?