写入远程计算机注册表

时间:2014-03-25 05:48:15

标签: c# .net wpf registry admin

我似乎在更改远程计算机上的注册表项时遇到问题。 此命令用于启用UAT框出现在主计算机上而不是新手计算机和远程那个愚蠢的暂停符号

public void SecureDesktopEnable(Object ComputerName)
        {
            String CurrentUser = Environment.UserDomainName + "\\" + Environment.UserName;

            System.Security.AccessControl.RegistrySecurity RegSec = new System.Security.AccessControl.RegistrySecurity();
            RegSec.AddAccessRule(new System.Security.AccessControl.RegistryAccessRule(
                Environment.UserDomainName + "\\" + Environment.UserName,
                  System.Security.AccessControl.RegistryRights.WriteKey 
                | System.Security.AccessControl.RegistryRights.ReadKey
                | System.Security.AccessControl.RegistryRights.SetValue, 
                System.Security.AccessControl.InheritanceFlags.None,
                System.Security.AccessControl.PropagationFlags.None,
                System.Security.AccessControl.AccessControlType.Allow));

            RegistryKey RegistryEntry = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, ComputerName.ToString(),RegistryView.Registry64)
                .OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", true);
            RegistryEntry.SetAccessControl(RegSec);

            if ((bool)SecureDesktop)
            {
                RegistryEntry.SetValue("PromptOnSecureDesktop", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryEntry.SetValue("PromptOnSecureDesktop", 0, RegistryValueKind.DWord);
            }

        }

private bool _SecureDesktop;
public bool SecureDesktop { get { return _SecureDesktop; } set { _SecureDesktop = value; NotifyPropertyChanged("SecureDesktop"); } }

我到了这一点

.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", true);

我收到错误消息"不允许请求注册表访问。

使用相同的用户名和密码我可以打开regedit,连接到网络注册表并更改密钥。

我还添加了

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

并尝试了

<requestedExecutionLevel  level="requireAdministrator" uiAccess="true" />
在app.manifest文件中。

有人可以帮忙吗。

0 个答案:

没有答案
相关问题