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

29

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

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

Запуск его от имени администратора через этот метод:

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

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

ненормальный
источник
Если UAC выключен и вы используете учетную запись администратора, каждый запускаемый вами процесс запускается с правами администратора.
Алексей Иванов
@AlexeyIvanov Я не верю, что это правда. Может быть, некоторые, но не все процессы и приложения ..
Insane
2
Вы правы: это изменилось в Windows 8: поведение UAC для параметра «Никогда не уведомлять» больше не отключает UAC. Параметр «Никогда не уведомлять» дает вам разделенный токен и всегда автоматически повышает требуемую привилегию. … Вы по-прежнему можете отключить UAC с помощью групповых политик или вручную установив раздел реестра. Источник: Контроль учетных записей пользователей . Но если вы полностью отключите UAC, то все процессы будут запущены с правами администратора.
Алексей Иванов
1
@AlexeyIvanov И теперь, когда я отключил UAC из групповой политики, вы правы ! Теперь все работает на высоте.
Безумный
Ага. Хотя приложения IIRC Windows Metro зависят от не повышения.
qasdfdsaq

Ответы:

37

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

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

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

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

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

введите описание изображения здесь

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

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

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

qasdfdsaq
источник
1
В самом деле. Охватывает все пункты, но я склонен дать 48 часов, чтобы у других ответов был шанс (поскольку я неоднократно кричал, что принимал слишком рано :)
Insane
По моему опыту, это обычно происходит, когда процесс застревает в ожидании завершения запроса ввода-вывода в режиме ядра. См. «Доступ запрещен» при попытке завершить процесс в Windows 8
Кристофер Оиклз
Тем не менее, можно завершить эти процессы, если вы запустите taskmgr как SYSTEM, используя "psexec -d -i -s taskmgr"
drake7707
1
@ drake7707 На самом деле защищенные процессы не могут быть завершены или даже записаны в ЦАП из пользовательского режима, даже если вы работаете как SYSTEM. Я не верю, что пользовательский режим может влиять на процессы, которые зависают в режиме ядра; Вы должны закрыть все дескрипторы ( см. другой мой ответ ) и дождаться завершения всех запросов режима ядра.
Бен Н
@BenN В более общем смысле, в точке зависания ядра; неужели у вас потенциально гораздо более серьезные проблемы, чем просто приложение, которое не может быть закрыто каким-либо безопасным способом.
Дэн Нили
18

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

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

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

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

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

Бен Н
источник
2
Многие антивирусные приложения (включая собственные Microsoft) также защищены.
qasdfdsaq
потому что это неотъемлемый компонент Windows Похоже на способ запуска вредоносных программ с привилегиями администратора без приглашения UAC ... Интересно, как в игре удается добиться такой безопасности, обеспечиваемой ядром.
CausingUnderflowsEverywhere
@CausingUnderflowsEverywhere Чтобы изменить логику, которая выбирает, что такое «встроенный компонент Windows», вредоносное ПО уже должно быть запущено от имени администратора, хотя существует несколько других известных стратегий обхода UAC. Кроме того, я считаю, что служба обработки информации о приложении (программа в пользовательском режиме) отвечает за обработку запросов на повышение прав.
Бен Н
1

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

Задний план

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

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

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

 

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

Дэн Хендерсон
источник