0
string user = @"NT AUTHORITY\NETWORK SERVICE";
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\services\eventlog");
RegistrySecurity regSec = new RegistrySecurity();
RegistryAccessRule rule = new RegistryAccessRule(
                user,
                RegistryRights.FullControl,
                InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
                PropagationFlags.InheritOnly,
                AccessControlType.Allow);
regSec.AddAccessRule(rule);

key.SetAccessControl(regSec);

我收到 System.Unauthorizedaccessexception:“无法写入注册表项。” 在 key.SetAccessControl(regSec);

我以管理员身份运行该应用程序。

4

1 回答 1

0

我认为网络服务帐户默认情况下没有对注册表的写入权限。

请参阅http://msdn.microsoft.com/en-us/library/ff647402.aspx#paght000015_registryaccess

该异常可能与应用程序是否以管理员身份运行无关。

于 2012-07-16T23:36:04.643 回答