我从事安全工作,经常遇到用户请求其计算机的本地管理员权限的情况,因为 1 个程序需要以管理员身份运行才能运行。不幸的是,这些程序中有很多都是关键程序,所以我无法拒绝这些请求。
话虽如此,因为单个程序需要以管理员身份运行而授予用户完全本地管理员权限似乎有些过分。
对于 Windows,有哪些选项可以允许用户或程序运行所需的权限,而无需授予整体管理员权限?
附言:我研究过第三方工具,例如 CyberArk 的 EPM,但我很好奇 Windows 是否具有任何原生功能可以满足我的需求。
答案1
当程序本身需要以管理员身份运行程序时,用户将请求权限。通常,用户启动程序时,UAC 提示会弹出,询问是否可以以管理员身份运行程序,用户单击“是”,如果用户不是本地管理员,则需要输入管理员凭据。
这是否意味着用户需要成为本地管理员?
不。
意思是程序想要执行当前用户无权执行的功能。由于管理员拥有所有权限,因此程序需要完全访问权限来执行一项或多项任务。
这是否意味着您可以在没有管理权限的情况下更改程序的运行,甚至不会出现这个问题?
是的。
困难的是要弄清楚权限是什么,这将需要一些反复试验,但如果投入时间,您可以在 PC 上成功设置权限,以便用户无需管理权限即可运行该程序。
以下是您在研究权限时需要了解的一些要点。
这种方法并不适用于所有程序。如果某个程序想做一些意想不到的奇怪事情,那么很难甚至几乎不可能找出它想做什么。如果您的尝试失败了,请考虑向开发人员发送电子邮件,询问程序正在将数据写入什么/写入何处。
如果程序想要在无权写入的文件夹中执行写入操作,或者修改无权修改的注册表项,则会触发 UAC。
在 Windows 10 上,Program Files 文件夹对于非管理员用户是只读的,并且需要管理权限才能写入,因为用户 Trusted Installer 是所有者并具有写入权限。
本地计算机注册表项对于本地用户是只读的,对于管理员是可写的。
如果某个程序仅为我的用户安装,则它将存储在用户配置文件中(用户在此处具有写入权限),而如果为所有用户安装,则它将存储在程序文件中。如果安装程序允许,请考虑重新安装为基于用户的程序。
您可以修改注册表子项和文件夹的安全设置并授予用户写入权限。如果您设法识别程序想要写入/更改的文件夹或项,这通常就足够了。
尝试将程序所安装文件夹的完全写入权限授予该文件夹及其子文件夹的用户,看看是否足够,这不会有什么坏处。 10 次中有 8 次,从一开始就让它正常工作就足够了。
控制服务的状态需要管理权限。如果您确定该程序确实需要运行服务,请使用子ACL授予用户启动/停止此服务的权限。
考虑到上述情况,如果某个程序是针对 Windows 10 正确编写的,则它不需要管理权限。如果该程序是为早期版本的 Windows 创建的,那么这可能就是它无法正常工作的原因。请检查程序的更新,或了解程序失败的原因并手动进行更正。