1

我想做以下事情:

  1. 非管理员用户可以在没有 UAC 提示的情况下运行我的程序。
  2. 该程序具有对特定文件的完全访问权限。
  3. 在程序之外,用户对文件具有只读或无访问权限。他们不能修改文件。他们只能通过程序对其进行修改。

可能吗?

4

2 回答 2

3

应用程序没有权限,用户有。条件“程序对特定文件具有完全访问权限”和“用户对特定文件具有完全访问权限”是无法区分的,因为程序以与启动它的用户相同的权限运行。

因此,为了让程序以更高的权限运行,它需要以不同的用户身份运行。您可以通过在可执行文件中嵌入应用程序清单来做到这一点。当然,那么当你运行它的时候,你会得到一个 UAC 提示,这是无法绕过的。

于 2013-05-01T06:02:15.477 回答
2

您需要将代码分成两部分;在用户上下文中运行的用户界面和以管理员权限运行的服务。

如果您使用 C 进行编程,请从MSDN 库中有关服务的部分开始,以获得一般概述和权威参考。

您可能希望使用命名管道作为 UI 和后端之间的通信机制,尽管根据您的特定需要还有其他选项。

作为一种优化,一旦你让它工作,配置服务,使它只在 UI 需要它时启动。 此答案显示了如何配置服务以便任何用户都可以启动它。

于 2013-05-03T05:55:51.987 回答