正确使用RegistryKey.OpenRemoteBaseKey方法C#

时间:2011-01-04 14:00:41

标签: c# registry

要点:

我需要使用RegistryKey.OpenRemoteBaseKey来查询HKEY_USERS的远程注册表

完整说明:

我目前正在尝试查询远程计算机上的注册表。我的RegistryKey.OpenRemoteBaseKey方法的代码如下。我知道的 “environmentKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.CurrentUser,remoteName).OpenSubKey(”Environment“);” 来自registrykey.openremotebasekey 的原始示例中的行。但是,我需要查询将更改语句的HKEY_USERS RegistryKey environmentKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.Users,remoteName); 这条线不起作用。

任何帮助或代码示例将不胜感激!我只需要查询远程系统上的HKEY_USERS注册表项。任何方法都适合我,我的代码只是因为它是我迄今为止找到的最好的方法,以获得我想要/需要的东西。我愿意改变:)

试             {

//打开HKEY_CURRENT_USER \ Environment                 //在远程计算机上。

            string remoteName = host;
            RegistryKey environmentKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.Users, remoteName);
            foreach (string valueName in environmentKey.GetValueNames())
            {
                string regy = (valueName + environmentKey.GetValue(valueName).ToString());
                Output.AppendText(regy + "\n");
            }

            // Close the registry key.
            environmentKey.Close();
        }
        catch
        {
        }

1 个答案:

答案 0 :(得分:0)

List<string> hkey = new List<string>();
        try
        {
            // Open HKEY_USERS
            // on a remote computer.
            string remoteName = host;
            RegistryKey environmentKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.Users, remoteName);

            foreach (string subKeyName in environmentKey.GetSubKeyNames())
            {
                hkey.Add(subKeyName);
            }

            // Close the registry key.
            environmentKey.Close();
        }
        catch
        {
        }