我已经搜索了很长一段时间以寻求解决方案。 至少我认为我理解这个问题,但是我还没有找到任何解决方案。

我需要的是某种可执行文件或将删除某些注册表项的脚本。 问题是有问题的注册表项仅授予对SYSTEM的读/写访问权限,而没有其他权限。 我可以删除它们的唯一方法是进入regedit,将自己设置为所有者,最后对所有人进行完全控制。 只有这样才能删除密钥。 我需要这个过程在某种脚本中!

因此,在C#中,我首先要确保该软件具有管理权限。 然后,我尝试执行以下命令。

    RegistryKey reg_localmachine = RegistryKey.OpenRemoteBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, "");
    RegistryKey key = reg_localmachine.OpenSubKey(@"SYSTEM\path to subkey", true);

在第二行中,当我尝试通过写访问权限访问子项时,出现异常“不允许请求的注册表访问”。 为了更改所有者或授予权限,我需要在RegistryKey上执行SetAccessControl()。 为了设置访问控制,我需要密钥的写权限。 所以我处于这个悖论中。

===============>>#1 票数:1

安全是有原因的。

您不希望任何旧程序能够进入并开始在注册表中进行黑客入侵。

注册表中的每个条目都有其自己的DACLS集。 只有两种解决方案:

  1. 将程序在其下运行的帐户更改为有权删除注册表项的帐户。

  2. 在注册表项上更改DACLS ,以包括您的程序在其下运行的帐户。

  ask by Tails86 translate from so

未解决问题?本站智能推荐:

6回复

请求的注册表访问权限不允许#2

我最近一直在编写一个需要访问以下注册表项的应用程序: HKLM \\ SOFTWARE \\ Wow6432Node \\类\\ CLSID 出于某些奇怪的原因,我不允许在我测试的任何系统上访问此密钥。 我正在使用管理权限以及介于两者之间的所有内容来尝试实现此目的。 我搜索
2回复

c#不允许请求的注册表访问

我有问题,我的应用程序正在以管理员权限运行(我也有清单) 我正在制作更改默认图标的程序。 当我更改* .php文件的默认图标时,一切正常。 但是,如果我想更改* .mp3文件的默认图标,则会出现此错误, 不允许请求的注册表访问 。 我不知道如何获得使用注册表的更好特权。 我仅使用
7回复

不允许请求的注册表访问

我正在编写一个调整实用程序,该实用程序可以修改HKEY_CLASSES_ROOT下的某些键。 在Windows XP等环境下一切正常。 但是我遇到错误,我猜也是Windows 7下Requested registry access is not allowed 。Vista和2008。
1回复

不允许请求的远程注册表访问

不允许请求的注册表访问我想访问Remote PC的注册表,但它不允许我这样做。 下面是我的代码 键= Remotekey.OpenSubKey(@“ SOFTWARE \\ Microsoft \\ Windows NT \\ CurrentVersion”); 这正在工作
1回复

SecurityException不允许请求的注册表访问

我在WPF(.NET 4.0)中有一个工具应用程序,需要访问注册表并更改子项值。 但是,当我尝试在Windows Server 2008 x64中执行x86内置的应用程序时,出现错误“ SecurityException不允许所请求的注册表访问”。 当我在Windows 8 x64中执行相同
1回复

无法读取注册表:System.Security.SecurityException,不允许请求的注册表访问

我收到报告错误的用户收到错误“System.Security.SecurityException,不允许请求注册表访问”。 在尝试阅读注册表时。 我想不出为什么有人没有权限阅读注册表,我无法在Windows 7 PC上重现这个问题。 受影响的用户正在运行.NET 4.0 这是我正在使
1回复

不允许请求的注册表访问。 即使是已签名的exe和admin特权在清单中

我正在尝试访问HKEY_LOCAL_MACHINE注册表, 这是清单文件: 我还用测试证书签署了可执行文件 这是功能: 这是结果: 如果没有安全例外,我该怎么做才能读取注册表
1回复

HKEY_CLASSES_ROOT中的“不允许请求的注册表访问权限”

我需要读取HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE中的注册表值。 但是,当我尝试获取具有读取访问权限的子项对象时,出现以下异常:“ 不允许请求的注册表访问 ”。 ( 注意::在我的应用程序中,我没有对注册表进行任何写或修改。 ) 仅当我尝试从客户端计算机
2回复

访问Visual Studio 2017的私有注册表配置单元

Visual Studio使用私有注册表配置单元而不是“污染”系统注册表 - 通常在这样的地方找到: C:\\Users\\Abx\\AppData\\Local\\Microsoft\\VisualStudio\\15.0_4b0ba1c0\\privateregistry.bin
1回复

Visual Studio 2017在C#中写入私有注册表

我需要通过ac#程序从Visual Studio 2017访问私有注册表,因此可以从正在运行的VS实例中使用那里的更改。 为此,我编写了一个扩展程序,该扩展程序在Visual Studio启动时启动C#方法。 有一个非常好的主意,如何在此处访问私有注册表: 访问Visual Studio 2