我想做以下事情:
- 非管理员用户可以在没有 UAC 提示的情况下运行我的程序。
- 该程序具有对特定文件的完全访问权限。
- 在程序之外,用户对文件具有只读或无访问权限。他们不能修改文件。他们只能通过程序对其进行修改。
可能吗?
我想做以下事情:
可能吗?
应用程序没有权限,用户有。条件“程序对特定文件具有完全访问权限”和“用户对特定文件具有完全访问权限”是无法区分的,因为程序以与启动它的用户相同的权限运行。
因此,为了让程序以更高的权限运行,它需要以不同的用户身份运行。您可以通过在可执行文件中嵌入应用程序清单来做到这一点。当然,那么当你运行它的时候,你会得到一个 UAC 提示,这是无法绕过的。
您需要将代码分成两部分;在用户上下文中运行的用户界面和以管理员权限运行的服务。
如果您使用 C 进行编程,请从MSDN 库中有关服务的部分开始,以获得一般概述和权威参考。
您可能希望使用命名管道作为 UI 和后端之间的通信机制,尽管根据您的特定需要还有其他选项。
作为一种优化,一旦你让它工作,配置服务,使它只在 UI 需要它时启动。 此答案显示了如何配置服务以便任何用户都可以启动它。