在 *nix 上,管理员可以使用 setuid 标志来允许非管理员运行某些需要管理员权限的程序。有没有办法在 Windows 7 中做类似的事情?
这个问题之前在 Windows XP 中被问过,答案通常不令人满意。我想知道 Windows 7 是否提供了更好的方法。
我能想到的一个想法是使用 Microsoft 的 UNIX 应用程序子系统,但如果可以避免的话,我宁愿不在每个用户的系统上安装它。
我能想到的另一个想法(它也适用于 XP,但我没有在任何地方看到它)是创建一个作为服务运行的 RunAsAdmin 应用程序,它采用“安全”应用程序的白名单并且可以被询问(从命令行、批处理文件或脚本)以 LocalSystem 或服务使用的任何帐户运行列表中的任何程序。这可能吗?
有没有像那些那样笨拙的解决方案?或者,是否有人成功实施了上述任何一种技术?
调查程序为什么需要管理员权限可能会很有成效。如果归结为文件或注册表权限之类的东西,那么您可以通过调整权限以授予用户访问权限来让程序在非管理员凭据下运行。
问题不应该是“我如何授予管理员权限”,问题应该是如何让用户获得正确的权限来运行应用程序。在 Windows 中,“管理员权限”是指管理员默认获得的一组权限。很少有应用程序需要所有这些权限。您应该审核应用程序权限的使用并相应地调整用户权限(最好通过创建一个组并将权限分配给该组)。这个概念被称为最小特权原则
http://www.technize.com/how-to-always-run-programs-as-administrator-in-windows-7/
如果要为所有用户授予程序管理权限,则可以通过再次转到兼容性选项卡并单击更改所有用户的设置来执行此操作。
选中以管理员身份运行此程序的复选框。
现在,该程序将为系统的所有用户以管理模式运行。
查看 RunAsGui。它允许您为要允许用户使用的给定程序存储管理员的加密凭据。免费。