安装程序如何绕过 Windows 10 上的权限

安装程序如何绕过 Windows 10 上的权限

我注意到,在使用pip全局安装软件包时,安装失败,并出现权限不足错误。pip以管理员身份运行时,问题已解决,并且pip能够写入我的Program Files目录。在编辑文本文件时也会出现同样的行为Program Files——只有当我以管理员身份运行文本编辑器时,它才会起作用。

Program Files但是,据我所知,我从未以管理员身份运行过任何安装程序,但它们都在没有任何提示的情况下写入我的目录。是什么让这些安装程序绕过了安全检查?

(我确实禁用了 UAC,但如果这是原因,那么为什么pip其他常规程序(如文本编辑器)无法写入Program Files目录?)

答案1

当 UAC 滑块完全向下时,请求提升权限的程序将自动获得批准。这与所有程序始终被提升权限不同(这实际上是如果您完全禁用 UAC,这会破坏一切)。

程序可以在其显现。大多数程序运行asInvoker在与调用进程相同的级别。有些程序(如注册表编辑器和 MMC)要求以权限运行highestAvailable,因此在启用 UAC 的情况下,管理员会收到提升提示,但普通用户不会收到。其他程序(如大多数安装程序)在没有提升的情况下完全无用,因此requireAdministrator。这就是安装程序自动为您提升的原因。显然,pip并不表现为需要提升。“你得不到,因为你不问。”

附加演示:从命令行启动提升权限的程序的一种方法是使用 PowerShell 的Start-Process-Verb runas如下所示:

Start-Process cmd -Verb runas

在 UAC 开启的情况下,运行该程序将为您提供命令提示符的提升提示。将 UAC 降低到 UI 允许的最低限度后,您将获得提升的命令提示符,而没有 UAC 对话框。(您可以在命令窗口的标题栏中看到差异。)如果-Verb runas关闭该程序,您将只获得正常的命令提示符。

相关内容