Удаленный реестр всегда нулевой, когда другой пользователь
Я создаю приложение формы 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.