29

Я пытался закрыть неотвечающий процесс, и после первого нажатия кнопки "Завершить процесс" ничего не произошло. Поэтому я сделал это снова, и на этот раз появилось окно с надписью "Доступ запрещен". В конце концов процесс завершился, но это заставило меня задуматься ..

Если бы я запускал диспетчер задач как администратор, он все равно дал бы мне это сообщение "Доступ запрещен"? Или, по сути, Windows 10 запускает диспетчер задач как администратор по умолчанию (когда учетная запись пользователя является администратором). Кроме того, есть ли разница между запуском от имени администратора или нет?

Запуск его от имени администратора с помощью этого метода:

Я не вижу заметных различий между этим и просто делать Ctrl+Shift+Escape.

Примечание: этот вопрос специально для Windows 10 (и, возможно, 8/8.1), и я использую Pro. Кроме того, мой UAC установлен на «Никогда не уведомлять».

3 ответа3

37

Диспетчер задач запускается от имени администратора по умолчанию в Windows 10?

Только если он запускается из учетной записи администратора. Ответ Бена Н. ниже дает отличное объяснение того, как это на самом деле реализовано.

Если бы я запускал диспетчер задач как администратор, он все равно дал бы мне это сообщение "Доступ запрещен"?

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

Если причина, по которой вы получили сообщение "Доступ запрещен", связана с тем, что диспетчер задач не запущен от имени администратора, вы получите это очень явное сообщение, в котором говорится следующее:

Кроме того, есть ли разница между запуском от имени администратора или нет?

Да, но вам придется запустить его из учетной записи без прав администратора, чтобы увидеть это.

Кстати, все вышеперечисленное поведение точно такое же, как в Windows 8/8.1

18

Существующий ответ очень хорош. Я предоставлю некоторые технические детали, для тех, кто любит такие вещи.

Taskmgr.exe\Windows\System32) - это программа, запускаемая при вызове диспетчера задач. Осматривая его с шестнадцатеричным редактором, я обнаружил , что его манифест наборы requestedExecutionLevel к highestAvailable Это означает, что если вы работаете как локальный администратор, диспетчер задач потребует от вас повышения уровня. Вы можете легко продемонстрировать это, установив UAC на высший уровень и нажав Ctrl+Shift+Esc, чтобы запустить диспетчер задач, отметив, что он выдает запрос на повышение прав. Если UAC не на самом высоком уровне, диспетчер задач может беззвучно повысить уровень, потому что это неотъемлемый компонент Windows. Короче говоря, да, диспетчер задач по умолчанию запускается от имени администратора, если это возможно.

highestAvailable (в отличие от requireAdministrator) позволяет пользователям, не являющимся администраторами, запускать программу без запроса на повышение уровня, но они, конечно, не смогут делать из нее ничего административного.

Быстрый и простой способ проверить, работает ли программа с повышенными правами, - включить столбец виртуализации UAC на вкладке «Сведения» диспетчера задач. Если и только если запись процесса в этом столбце не разрешена, она повышается. (Административные процессы не могут быть перенаправлены на совместимость.) Вы также можете проверить, обладает ли он мощными привилегиями (например, SeSecurityPrivilege), используя Sysinternals Process Explorer.

В ответ на ваш вопрос о том, что по-прежнему отказано в доступе к некоторым процессам, в Windows есть концепция защищенных процессов, которые абсолютно не могут быть затронуты в пользовательском режиме, даже процессами, выполняющимися как SYSTEM ; защита обеспечивается ядром. Только основные системные службы получают такую защиту. Одним из таких процессов является csrss .

1

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

Фон

Microsoft представила новый механизм управления ресурсами, начиная с Windows 8. Когда ресурсы системы пользуются повышенным спросом, Windows может выбрать некоторые процессы для перевода в состояние "приостановлено", чтобы высвободить свои ресурсы для других процессов. Приостановленный процесс по существу заморожен до тех пор, пока система не отключит его, что чаще всего происходит в ответ на инициирование пользователем взаимодействия с этим процессом. По какой-то причине диспетчер задач не освобождается от этого механизма, и на самом деле он имеет особенно неожиданное поведение: когда Windows переводит taskmgr.exe в состояние Suspended, его параметр "Скорость обновления" также изменяется, независимо от того, что вы установили. чтобы, чтобы сделать паузу. Однако, когда процесс не приостановлен, параметр "Скорость обновления" не восстанавливается до своего первоначального значения - он остается на значении « Приостановлено» !

Причина ошибки

Если для "Диспетчера задач" "Скорость обновления" установлено значение « Приостановлено», на вкладке "Сведения" могут отображаться процессы, которые больше не выполняются. Если это так, и вы пытаетесь "завершить процесс" на таком несуществующем процессе, вы получите ошибку "Отказано в доступе". (Краткосрочное) решение * состоит в том, чтобы убедиться, что для параметра "Скорость обновления" задано другое значение, например « Нормальный», прежде чем пытаться завершить процесс.

 

* Что касается долгосрочного решения по предотвращению переключения параметра "Скорость обновления" в первую очередь на « Приостановлено» (что происходит постоянно)... Я все еще ищу это!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .