我在读取C#中特定注册表项的访问控制时遇到一个奇怪的问题。 这段代码产生IOException

RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"VirtualStore\MACHINE\SOFTWARE\WOW6432Node\Microsoft\IdentityCRL");
RegistrySecurity rs = key.GetAccessControl(); // throws

异常消息是指定的注册表项不存在。 但是,当我使用regedit手动查看注册表时,键很明显在那里。

上面的代码对于到目前为止我尝试过的任何其他注册表项都适用。

我也已经三重检查了路径,所以也不应该是原因。

问题 :有人知道为什么这个特定的密钥会引起问题吗?

  ask by SampleTime translate from so

本文未有回复,本站智能推荐:

1回复

在注册表中编辑环境变量

我想从注册表中读取所有环境变量,并在Visual Studio 2010 Express中使用C#为它设置一个新值。 因此,我读取了本地计算机的子项: 还有Path的值。 在读取Path值时: 我得到一个例外,我没有许可。 因此,我在清单中设置了值: 但是现在我无法编译我
1回复

注册表使用C#以编程方式获取目录所有者

我想以编程方式使用C#阅读Windows注册表的目录(及其子目录)的所有者。 例如,假设我的注册表包含目录HKEY_CURRENT_USER\\Software\\Microsoft这是由用户拥有SYSTEM 。 我打算如何使用它的代码示例(省略dir子目录的递归)将是: 但是,我不确
4回复

Windows注册表中存储的环境变量在哪里?

我需要远程访问环境变量。 为此,我认为最好的方法是从注册表中读取它。 Windows 注册表中存储的环境变量在哪里?
1回复

如何从注册表中删除Windows用户环境变量

通过此简单的设置,我可以在注册表中创建任何用户环境变量: 创建一个MY_VARIABLE : 这是屏幕截图: 问题:如何删除刚刚创建的MY_VARIABLE ?
2回复

设置新的PATH环境变量后激活注册表更改

我在批处理标签下有此代码。 该代码检查排队的目录是否在系统PATH环境变量中,然后根据结果编辑该变量。 我想确保在Windows的每个版本中永久更改PATH变量,并且由于Windows XP和以下版本没有'setx'命令,因此对于那些操作系统,我最终使用了'reg add'命令。 一切
6回复

如何检查是否允许用户读取/写入特定的注册表项?

有谁知道我可以以编程方式检查(使用C#)我的程序是否能够读取/写入特定的注册表项(特别是:“ SOFTWARE \\ Microsoft \\ Windows \\ CurrentVersion \\ Run”)? 我问是因为我的程序可以选择启用或禁用“启动时运行”行为。 如果不允许当前用
1回复

如何获得甚至没有读取权限的注册表项的句柄

我正在尝试调用此函数以获取所有者作为密钥。 但是,要调用此函数,我首先需要键的句柄(IntPtr hKeysrc)。 在使用这些功能获取句柄之前。 但是现在,我定位的密钥仅具有系统帐户的权限! 当我尝试在注册表编辑器中打开密钥的权限时,收到错误消息您没有权限查看当前的权限设置,但是
1回复

在Windows7上无法读取64位注册表项

我遇到以下尝试读取注册表项但失败的代码的问题。 特定的错误是:“ System.NullReferenceException:对象引用未设置为对象的实例 。” 我正在使用的代码如下: 有关我的环境的一些事实: 这是我在Windows 7上运行的32位应用程序(已启用UAC-不,我无