Существующий ответ очень хорош. Я предоставлю некоторые технические детали, для тех, кто любит такие вещи.
Taskmgr.exe
(в \Windows\System32
) - это программа, запускаемая при вызове диспетчера задач. Осматривая его с шестнадцатеричным редактором, я обнаружил , что его манифест наборы requestedExecutionLevel
к highestAvailable
Это означает, что если вы работаете как локальный администратор, диспетчер задач потребует от вас повышения уровня. Вы можете легко продемонстрировать это, установив UAC на высший уровень и нажав Ctrl+Shift+Esc, чтобы запустить диспетчер задач, отметив, что он выдает запрос на повышение прав. Если UAC не на самом высоком уровне, диспетчер задач может беззвучно повысить уровень, потому что это неотъемлемый компонент Windows. Короче говоря, да, диспетчер задач по умолчанию запускается от имени администратора, если это возможно.
highestAvailable
(в отличие от requireAdministrator
) позволяет пользователям, не являющимся администраторами, запускать программу без запроса на повышение уровня, но они, конечно, не смогут делать из нее ничего административного.
Быстрый и простой способ проверить, работает ли программа с повышенными правами, - включить столбец виртуализации UAC на вкладке «Сведения» диспетчера задач. Если и только если запись процесса в этом столбце не разрешена, она повышается. (Административные процессы не могут быть перенаправлены на совместимость.) Вы также можете проверить, обладает ли он мощными привилегиями (например, SeSecurityPrivilege
), используя Sysinternals Process Explorer.
В ответ на ваш вопрос о том, что по-прежнему отказано в доступе к некоторым процессам, в Windows есть концепция защищенных процессов, которые абсолютно не могут быть затронуты в пользовательском режиме, даже процессами, выполняющимися как SYSTEM
; защита обеспечивается ядром. Только основные системные службы получают такую защиту. Одним из таких процессов является csrss
.