Удаленный реестр всегда нулевой, когда другой пользователь

Я создаю приложение формы aC# windows, которое идет читать реестр на удаленных компьютерах.

RegistryKey regKey = RegistryKey
                        .OpenRemoteBaseKey(RegistryHive.CurrentUser, pc, RegistryView.Registry64)
                        .OpenSubKey("SOFTWARE\\ODBC\\ODBC.INI\\ODBC Data Sources");

Когда я запускаю приложение от USER1, оно работает, потому что мои удаленные компьютеры всегда входят в систему с USER1.

Теперь, если я запускаю его с USER2, мой regKey всегда равен NULL, несмотря ни на что.

На моих удаленных компьютерах в Службах компонентов я разрешил службу: УДАЛЕННАЯ РЕГИСТРАЦИЯ.

Есть идеи, пожалуйста?

1 ответ

Решение

Вы не можете прочитать HKEY_CURRENT_USER через удаленный реестр по той простой причине, что с точки зрения службы удаленного реестра не существует "текущего пользователя".

Например, будет ли это:

  • Ключ реестра, который вы увидели бы, если бы вы вошли в систему? (но вы не!)
  • Раздел реестра текущего вошедшего в систему пользователя (Что, если его нет? Что, если их больше одного?)

Он не может просто получить улей реестра и загрузить его, потому что у вас может не быть перемещаемого профиля. Он не хочет создавать его просто так, чтобы вы могли посмотреть реестр.

Итак: HKEY_CURRENT_USER ничего не возвращает для удаленной службы реестра. Если вы заинтересованы в конкретном пользователе, вы можете посмотреть в разделе HKEY_USERS.

Другие вопросы по тегам