我正在尝试获取所有权并更改 C# 中文件的 ACL,但即使作为管理员,我也遇到了异常:
System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
运行程序的用户可以通过 Windows 界面获取所有权和更改权限。
我的代码:
string fileName = @"C:\temp\mount\Windows\System32\Boot\en-US\winload.exe.mui";
FileSecurity fileSec = File.GetAccessControl(fileName);
fileSec.SetOwner(WindowsIdentity.GetCurrent().User);
File.SetAccessControl(fileName, fileSec); //exception thrown here
我什至添加了一项检查以确保当前用户是管理员组的成员:
WindowsIdentity wi = WindowsIdentity.GetCurrent();
WindowsPrincipal wp = new WindowsPrincipal(wi);
bool isAdmin = wp.IsInRole(WindowsBuiltInRole.Administrator); //returns true
背景信息:我正在创建一个 WinPE 映像,需要替换 winload.exe.mui 文件。
此外,此文件的当前权限仅授予对“受信任的安装程序”的完全访问权限。
我在 Windows 7 上运行