我想授予文件(已存在于客户端计算机 .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/