如何使一个文件读写到一个程序,但只读/不访问Windows中的非pipe理员用户?

我想要做以下事情:

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

可能吗?

你需要把你的代码分成两部分, 在用户上下文中运行的用户界面以及以管理员权限运行的服务。

如果您使用C语言进行编程,请从MSDN库服务部分开始,了解一般概述以及权威参考。

您可能想要使用命名管道作为用户界面和后端之间的通信机制,但根据您的特定需求还有其他选项。

作为一个优化,一旦你得到它的工作,配置服务,以便只有当用户界面需要它开始。 此答案显示如何配置服务,以便任何用户可以启动它。

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

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