Убить процесс, который говорит: «Доступ запрещен»

172

У меня есть процесс, который я не могу завершить ни с помощью диспетчера задач, ни с помощью Process Explorer - я получаю сообщение об ошибке «Доступ запрещен». Процесс не является исполняемым файлом Windows.

Как я могу убить это? Есть ли какой-нибудь инструмент, который я мог бы использовать для отмены этой защиты?

Я использую Windows 7, 64-разрядная версия.

Tony_Henrich
источник
Было бы слишком много вопросов о том, какой процесс вы хотите прекратить?
4
Запустите командную строку от имени администратора. используйте taskkill / im <your process.exe> ​​/ f, чтобы завершить процесс
tumchaaditya
2
@tumchaaditya taskkill /im <process>:: The process can only be terminated forcefully. taskkill /F /im <process>: There is no running intance of the task. :( TaskMgr как администратор также не может убить его Access is denied.
Mooing Duck
5
Нужно ли задавать отдельный вопрос, чтобы спросить, почему, будучи администратором моей собственной системы, мне «не надо» убивать процесс в моей собственной системе? Я мог видеть самое большее «предупреждение»: «эй, если ты убьешь этот процесс, это, это и это произойдет, ты все еще хотел бы продолжить?»
IT Bear
1
Что бы это ни стоило, я обычно procexplorerсмотрел на задачу и видел, что родительская задача была explorer.exe. Я убил, explorer.exeа затем задача ушла. Красиво и просто в конце. Я бы выдвинул это как ответ, но по какой-то причине он не позволяет мне.
Эли Гассерт

Ответы:

96

Убить защищенный процесс?

http://processhacker.sourceforge.net/index.php

Работает на Windows Server без прав администратора! Yammie! :)

Greatz
источник
5
Спасибо! Мне удалось убить процесс «отказано в доступе» с помощью хакера процесса, это отличный совет, и это должен быть выбранный ответ на этот вопрос. Спасибо, что сообщили мне об этом замечательном программном обеспечении, я долго был недоволен проводником процессов, а теперь нашел отличную замену.
KoKo
16
Не уничтожил мой процесс, но, по крайней мере, он дал причину, кроме «Отказано в доступе» (который диспетчер задач и обозреватель процессов не делали: невозможно завершить OUTLOOK.EXE (PID 7588): была предпринята попытка доступа к выходящему процессу.
thomasa88
1
Process Hacker не убивает процесс Symantec DLP [edpa.exe]
PeterX
1
Также можно просто запустить Process Explorer от имени администратора, чтобы получить права на уничтожение таких процессов. Все равно у меня сработало.
bames53
1
Успешно убивает mcshield.exe (при запуске от имени администратора). mcshield.exe перезапускается немедленно, но без убийственного 100% поведения процессора (по этой причине его нужно убивать, как два раза в неделю). Никогда не справлялся с проводником процессов.
Tewr
13
  1. Загрузите « Process Explorer ».
  2. В представлении свойств процесса выберите вкладку безопасности.
  3. Нажмите кнопку разрешений.
  4. Нажмите расширенную кнопку.
  5. При необходимости добавьте себя или группу, к которой вы принадлежите.
  6. Отредактируйте ваши разрешения, чтобы включить «Завершить». (у вас уже должно быть разрешение «Изменить разрешения», или вам не повезло.)

альтернативный текст

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

Дано
источник
9
Кнопка прав доступа неактивна, хотя я администратор и использую Process Explorer с повышенными правами.
cheeesus
2
Это не работа для меня, чтобы убить процесс AVGUI.exe, но я сделал это с помощью Process Hacker
Рикин Патель
2
Моя кнопка «Разрешения» не выделена серым цветом, но в появившемся диалоговом окне (в Windows-8) не все доступные. Просто «Полный», «Читать», «Написать» и «Специальный».
Джесси Чисхолм
1
> необходимость убивать задачи означает, что кто-то что-то не делает правильно. Да, а именно программисты, которые написали эту чертову штуку.
Каз
10

Методы taskkill и powershell (kill) у меня не сработали; он все еще сказал, что доступ запрещен.

Мне повезло больше с этим:

wmic process where name='myprocessname.exe' delete
twasbrillig
источник
7
«Доступ запрещен» с использованием этого метода тоже.
Йонас Эппелгран
1
Это работает как шарм.
Хамза Анис
6
Я должен был напечатать wmic process where "name='myprocessname.exe'" delete. В противном случае я бы получил Invalid queryошибку. В конце я все еще получаю ошибку отказа в доступе.
Мемет Олсен
9

Вам просто нужно предоставить административные привилегии Process Explorer, не нужно добавлять учетную запись или нет (если вы уже являетесь администратором). Нет необходимости сообщать, какие процессы завершать или нет, или устанавливать какой-либо другой диспетчер процессов (даже мне нравится Process Explorer).

Или:

  • Щелкните правой кнопкой мыши и «Запуск от имени администратора»

  • Перейдите в свойства, а затем совместимость и выберите «Запуск от имени администратора»

Теперь никогда не будет отказано в доступе.

Картик Ананд
источник
20
Хм, да, он все еще может сказать "доступ запрещен". Если процесс запускается с флагами безопасности, которые изменяют разрешение на прерывание в ACL процесса, вы не сможете прекратить его, пока не сможете изменить эти разрешения для процесса. Антивирусные процессы часто делают это нарочно (в основном просто для того, чтобы раздражать), поскольку вредоносным программам не составит труда обойти это обычно. аля процессхакер.
DanO
6
не работает для меня.
Петр
1
Не удается отключить MsMpEng таким способом в Windows 7/8/10.
user2864740
6

Вы находитесь в привилегированном аккаунте? Обычно, когда вы получаете сообщение об ошибке «Отказано в доступе» даже для учетной записи с более высоким уровнем доступа, обычно это происходит из-за того, что вы пытаетесь уничтожить службу, критически важную для работы системы. С другой стороны, некоторые приложения, такие как VMWare, также реализуют свою собственную «защиту процессов», даже для процессов, которые не являются жизненно важными для работы системы.

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

Джон Т
источник
Если я снимаю свои процессы, это будет все еще нестабильно?
Большой Леонардо
Однако pskill не может убить ни один процесс. В моем случае это не может убить обертку nginx, которая не является критическим процессом. Это услуга, но не обычный процесс.
sergzach
4
  1. Откройте диспетчер задач. Перейдите на вкладку «Процесс».
  2. Щелкните правой кнопкой мыши по процессу и выберите Свойства.
  3. Нажмите на вкладку «Безопасность» и затем нажмите «Изменить».
  4. В окне «Разрешения» нажмите кнопку «Добавить», чтобы открыть окно «Выбор группы или группы пользователей».
  5. В окне Выбор пользователей или групп вы можете ввести имена пользователей учетных записей, для которых вы хотите применить ограничения.
  6. Выберите свое имя пользователя и установите разрешения для запрета / разрешения, установив флажок под опцией запретить / разрешить.
  7. Нажмите Применить, а затем ОК.

через

Iain
источник
Я админ и у меня полный контроль.
Tony_Henrich
14
Обычно, когда вы не можете убить процесс, вы также не можете изменить его разрешения
skan
Отлично подходит для процессов, но что для услуг?
sergzach
1
Хм, я попробовал это, но когда я нажал «Применить», он сказал мне «Доступ запрещен»
Jet
2
Хм, что? Это изменило бы права доступа к исполняемому файлу, а не к запущенному экземпляру процесса, так что это кажется совершенно неактуальным.
underscore_d
4

Не уверен, что причина, но использование обозревателя процессов Sysinternal и нажатие на «Показать детали для всех процессов» в меню «Файл» решило проблему и позволило мне убить службу. Возможно, он переключается в режим администратора только тогда.

Навид Уль Ислам
источник
Это именно так. Эта опция заставляет его перезапускать себя с повышенными разрешениями (если они у вас есть).
ДанО
1

Также возможно уничтожить команды с помощью Windows PowerShell, использовать get-processдля отображения списка запущенных процессов, а затем использовать stop-processс идентификатором задачи для его уничтожения. Стоп-Процесс .

get-process Unkillable.exe
stop-process 1234

Возможно, вам понадобится запустить Windows PowerShell специально как администратор.

Ричард Лукас
источник