Конференция "WinAPI" » Получение данных первой сессии из сервиса
 
  • Kirill © (22.10.13 15:37) [0]
    Добрый день. В продолжении темы про запуск приложения из сервиса в Win Vista и позже http://pda.delphimaster.net/?id=1376897371&n=5

    Перечитал документацию. Изучил подробнее (а главное осознал) о том, что все сервисы работают в нулевой сессии, а пользователи начиная с Висты стали логинится в сессию начиная с 1.
    Отсюда вопрос: если сессии кроме нулевой нет, как можно программно авторизовать в системе пользователя (если хранить для сервиса логин и пароль от учетки под которой надо авторизоваться). Загрузить его профиль? Чтобы в дальнейшем можно было получить его токен и запускать под ним интерактивно приложения.
  • Eraser © (22.10.13 15:41) [1]

    > Kirill ©   (22.10.13 15:37) 


    > как можно программно авторизовать в системе пользователя

    и

    > Чтобы в дальнейшем можно было получить его токен и запускать
    > под ним интерактивно приложения

    это две совершенно разные задачи. какой функционал требуется от приложения? просто автозапуск нужной программы при логоне пользователя?
  • Kirill © (22.10.13 15:45) [2]
    Нет. Нужно запускать приложения при перезапуске сервера. Но приложение оконное. И еще порядок приложений важен (это мелочи). Из-за новых ОС запуск приложений с оконным (интерактивным) интерфейсом необходимо выполнять в сессии 1, т.е. надо ее создать вручника.
  • Rouse_ © (22.10.13 16:14) [3]
  • Kirill © (22.10.13 16:31) [4]

    > Оно?

    Сейчас нет :(
    Оно запускает процесс уже под залогиненым пользователем. А нам надо его сначала авторизовать в системе без присутствия самого пользователя и без программ типа Autologon от Sysinternals (это я оставлю совсем на крайний случай).
  • Inovet © (22.10.13 18:16) [5]
    Как-то нехорошо это - пользователя нет, а его кто-то залогинил.
  • Rouse_ © (22.10.13 18:17) [6]

    > А нам надо его сначала авторизовать в системе без присутствия
    > самого пользователя

    Без присутствия пользователя - это сервис. Если пользователя нет, кому на твои окошки смотреть и кнопки жамкать?
  • Rouse_ © (22.10.13 18:19) [7]
    В крайнем случае смотреть нужно в сторону winlogon (реализуешь в виде плагина к системе) - но смысла в итоге это не поменяет.
  • Kirill © (23.10.13 09:18) [8]

    > Как-то нехорошо это - пользователя нет, а его кто-то залогинил.

    "Это сервисный пользователь" - под ним много регламентных заданий выполняется.

    Всем большое спасибо. Здесь дали наводку на функцию http://forum.vingrad.ru/forum/topic-370184/anchor-entry2587723/0.html

    А запуск процесса под этим пользователем http://www.cromis.net/blog/2010/01/how-to-start-a-gui-process-from-service-under-windows-vista7/

    Пару часов напильником и сервис опять работает (уже под новые OS).
 
Конференция "WinAPI" » Получение данных первой сессии из сервиса
Есть новые Нет новых   [118638   +31][b:0][p:0]