Изменение реестра другого пользователя

#c #windows #registry

#c #Windows #реестр

Вопрос:

Вот в чем проблема.

Мне нужно запустить службу Windows, которая настраивается через реестр. Есть ли какой-либо способ изменить HKCU другого пользователя без перечисления всех пользователей на компьютере?

Комментарии:

1. Я знаю логин и пароль пользователя. Могу ли я получить SID, используя их?

2. Я не могу найти способ получить SID с помощью hToken (возвращаемый LogonUser).

3. Я нашел эту ссылку: msdn.microsoft.com/en-us/library/aa446670 . Этот метод работает, но возвращает что-то странное. После вызова ConvertSidToStringSid я получил строку, которую невозможно найти в реестре моего компьютера. Вы знаете причину?

4. Куст реестра другого пользователя может не загружаться, если пользователь не вошел в систему.

5. Почему бы и нет? Насколько я понял, подразделы в HKEY_LOCALUSERS являются символическими ссылками на HKCU для других пользователей.

Ответ №1:

Я нашел хороший способ сделать это через интерфейс WMI. Я открыл connectioin к WMI (смотрите там:http://msdn.microsoft.com/en-us/library/aa390423(v=vs.85).aspx ).

Далее я перечислил все элементы в базе данных Win32_Account. У каждого элемента в Win32_Account есть поля домена, имени и SID.

Это способ получить правильный SID.

К сожалению, я все еще не знаю, как выполнить эту операцию без перечисления всех пользователей.

Кроме того, этот метод перечисляет всех пользователей в домене (даже если они никогда не заходят на локальный компьютер).