Re[2]: Выполнить LoadUserProfile не имея прав администратора
От: alexkz Казахстан  
Дата: 12.06.08 08:50
Оценка:
Здравствуйте, TarasCo, Вы писали:

A>>Подскажите как правильно обойти ограничение функции LoadUserProfile? Ведь команда "RunAs" в проводнике работает из под обычного пользователя! Предполагаю, что она использует сервис "Вторичный вход в систему", возможно ли его задействовать для решения моей задачи? его API?


TC>Можете использовать ф. CreateProcessWithLogonW — именно она использует службу "вторичный вход в систему". Но тут есть маленький нюанс — вам нужно знать пароль администратора.


Не могу, т.к. мне не нужно запускать процесс (вообще нет никакого другого процесса).
Программа должна иметь возможность одновременно выполнять некоторые функции с правами разных пользователей. Представь менеджер по управлению некими сервисами которые находятся на разных машинах, для каждого сервиса назначен свой администратор.
Сейчас алогоритм такой:
  1. Cоздается новый поток
  2. Вызываю ф. LogonUser, указываю пользователя который имеет права управления моим сервисом.
  3. Вызываю ф. LoadUserProfile, загружаю профиль пользователя
  4. Вызываю ф. ImpersonateLoggedOnUser
  5. [делаю то, что мне нужно с сервисом]
Все бы замечательно, но LoadUserProfile требует права администратора на машине Вот как обойти это ограничение я и ломаю голову

И если CreateProcessWithLogonW использует службу "Вторичный вход в систему (Secondary Logon)" то она не должна требовать прав администратора, иначе зачем служба вообще..

Спасибо за ответ!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.