Здравствуйте, Ignoramus, Вы писали:
I>Господа!
I>Как, будучи админом на данной машине, получить доступ к реестру других пользователей, т.е. не к CURRENT USER, а вообще ко всем?
I>Я по наивности раньше думал, что для этой цели служит HKEY_USERS, но как выяснилось, в этот ключ входит только CURRENT USER и DEFAULT USER.
I>А нужно это мне для того, чтобы очистить реестр от записей моей программы после uninstall.
I>Спасибо.
Можно поробовать законнектиться RegConnectRegistry к локалхосту а перед этим имперсонировать того юзера (пароль правда надо знать), например, в том же треде замэпив шару \IPC$ через WNetAddConnection2 или же через LogonUser и ImpersonateLoggedOnUser
Здравствуйте, davenger, Вы писали:
D>Можно поробовать законнектиться RegConnectRegistry к локалхосту а перед этим имперсонировать того юзера (пароль правда надо знать), например, в том же треде замэпив шару \IPC$ через WNetAddConnection2 или же через LogonUser и ImpersonateLoggedOnUser
Откуда же я узнаю пароль? Я-то и количество юзеров даже не знаю... Так что этот вариант не подходит...
Здравствуйте, Ignoramus, Вы писали:
I>Господа! I>Как, будучи админом на данной машине, получить доступ к реестру других пользователей, т.е. не к CURRENT USER, а I>вообще ко всем?
Если это все будет работать под nt, то можно сделать RegLoadKey для каждого ntuser.dat, подправить загруженный куст там где нужно, и сделать ему RegUnloadKey.
Hello, lzh!
You wrote on Fri, 29 Aug 2003 11:01:22 GMT:
хъ
Можно использовать LoadUserProfile.
Правда для этого нужно получить токен того юзера, но это уже дело техники.
Под XP, например, LogonUser — это не проблема.
Здравствуйте, Alexey Shirshov, Вы писали:
AS>Hello, lzh! AS>You wrote on Fri, 29 Aug 2003 11:01:22 GMT:
AS>хъ AS>Можно использовать LoadUserProfile. AS>Правда для этого нужно получить токен того юзера, но это уже дело техники.
предыдущие посты читаем? или как? у человека нету паролей других пользоватетелей... да и вообще расскажите это как легко получить токен(траблы ещё те возникают)?
AS>Под XP, например, LogonUser — это не проблема.
ну так я думаю мин требования XP ещё пока редко где проходят.... =(
AS>With best regards, Alex Shirshov.
Hello, Denis!
You wrote on Fri, 29 Aug 2003 12:01:04 GMT:
хъ D> предыдущие посты читаем? или как? у человека нету паролей других D> пользоватетелей... да и вообще расскажите это как легко получить D> токен(траблы ещё те возникают)?
Дык в MSDN все написано: CreateRestrictedToken, OpenProcessToken,
DuplicateHandle.
А как ты хочешь по другому?
Профайл пользователя, в котором лежит эта ветка, в общем случае находится на
контроллере домена, и так просто ты его от туда не вытащишь. Иногда он,
конечно, может оказаться на машине пользователя, но опять же — формат файла
ntuser.dat недокументирован. Можно, кое-чего почитать у Руссиновича в Inside
Win2k, но, ИМХО, это все сложно будет реализовать.
Здравствуйте, Alexey Shirshov, Вы писали:
AS>Hello, Denis! AS>You wrote on Fri, 29 Aug 2003 12:01:04 GMT:
AS>Дык в MSDN все написано: CreateRestrictedToken, OpenProcessToken, AS>DuplicateHandle.
все данные функции оперуруют с уже имеющимся токеном. поэтому не подойдут для создания токена произвольного пользователя. уж не говоря о том что требовалось в вопросе.
я ничего не хотел =), вопрос даже не я написал.. я только прокомментировал твой ответ(точнее сказал что он неприемлим)
Напоминаю Вам свою задачу, важность которой резко померкла теперь в моих глазах по сравнению с трудностями, которые как всегда неожиданно возникли на моем пути :
I>А нужно это мне для того, чтобы очистить реестр от записей моей программы после uninstall.
Я вообще-то заметил, что многие (если не все) программы после деинсталляции оставляют свои записи в реестре (по крайней мере очищают только CURRENT USER и LOCAL MACHINE), может, так и следует делать? Т.е. если для полной очистки реестра (под всеми пользователями) не предусмотрено средств, то может и не нужно? Что считается хорошим тоном?
Я раньше думал, что у администратора есть доступ к реестрам всех пользователей, но если это не так, то возникают сомнения в целесообразности моей задачи...