gpt4 book ai didi

c# - 使用 RegistryKey、RegistrySecurity 和 RegistryAccessRule 修复 Windows XP 上的错误注册表设置

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:00 25 4
gpt4 key购买 nike

我有一个正在编写的 C# 应用程序,它将在整个组织内修复损坏的注册表项。我正在尝试使用 RegistryKey、RegistrySecurity 和 RegistryAccessRule 这三个类,当我尝试使用它们时,我收到“不允许请求的注册表访问”。我对此进行了广泛搜索,但找不到好的解决方案。

我正在尝试修复的 key 没有权限(请参见下面的屏幕截图)。它们是空白的,没有可继承的设置。这不允许我用我的应用程序修复它们,因为我没有权限,但我可以更改运行此应用程序的用户的权限,就像我打开 regedit 一样。所以我知道我可以通过此用户手动方式为损坏的机器添加权限,但出于某种原因,我的应用程序无论我如何努力提升自己都无法获得权限。

我尝试过的事情:

  1. 在 Windows 7 上,当您使用 UAC 运行应用程序时,它可以工作,右键单击以管理员身份运行。我想用相同的代码复制在 Windows XP 上执行此操作的能力。
  2. 我已经使用级别“highestAvailable”创建了一个 list ,还尝试使用“requireAdministrator”。
  3. 我也尝试过使用“System.Security.Permissions.RegistryPermission”断言,这显然也会带来更高级别的运行权限。
  4. 我没有从网络共享运行它,尽管我已经尝试了本地和网络以查看它会从哪个安全区域运行。

您可以在下面看到权限的样子: http://i.stack.imgur.com/0c99s.jpg

感谢任何帮助!

最佳答案

您可以尝试从您的代码中模拟管理员帐户,使用 P/Invoke 调用必要的 API,就像这个人创建帐户模拟类所做的那样:

Impersonator Class c#

关于c# - 使用 RegistryKey、RegistrySecurity 和 RegistryAccessRule 修复 Windows XP 上的错误注册表设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4305999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com