C# 某些HKLM注册表项数据在c中不可用#

C# 某些HKLM注册表项数据在c中不可用#,c#,windows,registry,C#,Windows,Registry,我想知道是否有其他人可以验证这是一件“事情”,可能是一些模糊的组策略难题/用户权限问题:我在网上什么也找不到 我去不了 @\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate var r = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT"); if (r != null) { Console.WriteLin

我想知道是否有其他人可以验证这是一件“事情”,可能是一些模糊的组策略难题/用户权限问题:我在网上什么也找不到

我去不了

@\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate

var r = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT");
if (r != null)
{
    Console.WriteLine("Key exists");
}
else
{
    Console.WriteLine("Key does not exist");
}
=
键存在

但是

=
键不存在

但它们都存在于RegEdit中


注册表支持(非常类似于文件系统)每项访问权限。它们在真正的每键级别上不经常使用,但这似乎是其中一种情况(现在无法直接验证,因为我看不到这两个文件夹的权限对话框有什么不同)

Regedit运行。尝试运行你的程序。是的,我希望不必这样做。密钥受到保护,就像文件系统受到保护一样。使用应用程序的帐户必须具有查看密钥的最低权限才能访问密钥。您可以作为管理员分配这些权限,但无法回避。您的代码在64位windows上是32位的吗?如果是-注册表重定向。您需要检查返回的错误-密钥不存在错误或什么?我可以确认
管理员
也没有看到此密钥
var r = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate");
if (r != null)
{
    Console.WriteLine("Key exists");
}
else
{
    Console.WriteLine("Key does not exist");
}