c# - 在 C# 中设置文件的 UAC 设置

标签 c# permissions uac patch administrative

我想授予文件(已存在于客户端计算机 .exe 上)始终以管理权限执行的权限。

请注意我要授予权限的文件已经在目标机器上。我想通过另一个用 c# 编写的程序更改该文件的权限,它具有执行所有操作的管理权限。

请告诉我怎么做 我正在使用这段代码

        System.Security.AccessControl.FileSecurity fs = File.GetAccessControl(@"c:\inam.exe");
        FileSystemAccessRule fsar = new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow);
        fs.AddAccessRule(fsar);
        File.SetAccessControl(@"c:\inam.exe", fs);

此代码将正确更改权限,但当我在执行此代码后执行 inam.exe 时,UAC 未出现并且 inam.exe 无法执行管理操作。

实际上我已经在 10,000 多个客户端上部署了一个应用程序,所以想发布一个补丁来解决管理权限问题。

最佳答案

以管理权限执行不是文件权限。

这通常通过添加 a manifest file 来配置(到 EXE 中的 Win32 资源,或作为外部 list )。此 list 文件可以说明应用程序是否需要以提升的方式运行。

我不完全确定 Windows 将“以管理员身份运行此程序”兼容性设置藏在哪里。

关于c# - 在 C# 中设置文件的 UAC 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2737196/

相关文章:

c# - Webforms 数据绑定(bind)与 EF Code-First Linq 查询错误

c# - 绑定(bind)到 POCO 列表时,指定的类型转换无效

c# - 使用 Entity Framework 和 ASP.NET 从(多对多)结果表中删除记录

c++ - 如何运行需要没有管理员权限的应用程序

c# - 我将如何编写此 LINQ 查询?

java - 授予权限时策略文件的替代方案?

c++ - Clion 无法打开输出文件,权限被拒绝

qt - 避免 Qt 5.1 lupdate 中的 UAC 提示

c# - 程序 (c#) 运行提升,仍然无法访问某些文件

使用c在linux中创建具有给定名称和权限的文件