我試圖向註冊表項添加一些訪問規則,但我沒有權限,但我是管理員並正在使用"Run as administrator"
命令在鼠標右鍵菜單上。
不幸的是引發異常(System.UnauthorizedAccessException
)。
當以管理員身份運行regedit.exe
時,我可以更改此密鑰的權限而無任何問題。
如何在我的應用程序中爲此鍵添加任何訪問規則?將註冊表訪問規則添加到我無法訪問的密鑰中,但我是管理員
RegistryKey root = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\some_key", RegistryKeyPermissionCheck.ReadWriteSubTree);
RegistrySecurity security = new RegistrySecurity();
SecurityIdentifier sec = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
RegistryAccessRule rule = new RegistryAccessRule(sec, RegistryRights.ReadKey | RegistryRights.QueryValues, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly, AccessControlType.Allow);
security.AddAccessRule(rule);
root.SetAccessControl(security);
root.Close();
舊線程,但對於那些發現此線程的人(與我一樣),請參閱解決方法: [S.O.設置所有者的註冊表項](http://stackoverflow.com/questions/24742115/asp-net-vb-setting-owner-on-a-registry-key) – 2014-07-21 16:41:26