现有答案非常好。对于那些喜欢这些东西的人,我将提供一些技术细节。
Taskmgr.exe
(中的\Windows\System32
)是调用“任务管理器”时运行的程序。通过十六进制编辑器对其进行了检查,我发现其清单设置requestedExecutionLevel
为highestAvailable
。这意味着,如果您以本地管理员身份运行,则任务管理器将要求您提升权限。您可以通过将UAC设置为最高级别并按Ctrl + Shift + Esc来启动任务管理器来轻松演示这一点,注意它会生成一个海拔提示。如果UAC不在最高级别,则任务管理器可以静默提升,因为它是Windows不可或缺的组件。简而言之,是的,默认情况下,任务管理器默认以admin身份运行。
highestAvailable
(而不是requireAdministrator
)允许非管理员运行程序而无需被要求提升,但他们当然不能从该程序执行任何管理工作。
快速查看程序是否正在运行的方法是启用任务管理器“详细信息”选项卡中的“ UAC虚拟化”列。当且仅当进程在该列中的条目为Allow时,才将其提升。(管理过程不能重定向兼容性。)您还可以SeSecurityPrivilege
使用Sysinternals Process Explorer检查它是否具有强大的特权(例如)。
为了回答您仍然无法访问某些进程的问题,Windows提出了一种受保护的进程的概念,绝对不能从用户模式下访问它,即使运行为SYSTEM
;该保护由内核实施。只有基本的系统服务才能获得这种保护。一个这样的过程是csrss
。