Терминальные сервера

Тема в разделе "WASM.WIN32", создана пользователем csmok, 12 июн 2007.

  1. csmok

    csmok New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2007
    Сообщения:
    19
    Пожалуйста помогите.
    Стоит следующая задача.К компьютеру подключаются пользователи с помощью rdp клиента.
    Для каждого подключенного клиента я получаю список процессов:имя,ид сессии, PID,user name,domain name. Для подключения к серверу клиент может использовать два способа подключения:терминальный и консольный. Если список процессов пользователей я получил, то как можно понять каким образом пользователь подключился к удалённой машине, т.е. необходимо найти способ проверить в какой сессии загружен тот или иной процесс.
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    csmok
    я получаю ... ид сессии
    Код (Text):
    1. WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, ид сессии, WTSClientProtocolType, ...
     
  3. csmok

    csmok New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2007
    Сообщения:
    19
    Возникли проблемы. В начале смотрел было в порядке, а потом заглянул, а моя прога не видит саму себя в терминальной сесси как от этого избавиться?
     
  4. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    csmok
    моя прога не видит саму себя в терминальной сесси
    А она запускается из терминальной сессии?
    Видна ли она если для получения списка процессов использовать tool help api или psapi?
     
  5. csmok

    csmok New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2007
    Сообщения:
    19
    Когда я решил запустить копию программы, то копия обнаружила процесс запущеный
    перед вторым запуском.
    Насчёт второго вопроса тоже да.Проверял с помощью ToolHelp'a всё нормально отoбражается.
     
  6. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    csmok
    Я запутался (надо было продолжать в Терминальные серверы и список процессов.). В чем заключается проблема? Собрать разную информацию по процессам?

    При помощи Tool help API получаешь список процессов. При помощи ProcessIdToSessionId получаешь SessionID. Используешь ее для получения информации через WTSQuerySessionInformation.
     
  7. csmok

    csmok New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2007
    Сообщения:
    19
    Задача состоит в получении всех процессов и определении в какой сессии данный процесс запущен.Проверка в какой сессии запущен процесс кажется я реализовал. Почему кажется потому, что не до конца проверил свои догадки,которые заключаются в том, что все консольные процессы запускаются в сессии с ид 0, сюда же можно отнести процессы с ид сесси 2, так как они как я не тестировал всегда содержали один и тот же набор процессов.Остальные процессы имеют отличные id сессий.
    Но оказалось, что список не полный так как нет самой программы, которой этот список получаю.
     
  8. csmok

    csmok New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2007
    Сообщения:
    19
    Хотел задать вопрос по поводу функции.
    Меня Интересуют какие параметры необходимы, в основном они все понятны за исключением
    WTSClientProtocolType.Также меня интересует структура WtsSessionInfo как её определить,
    что для этого необходимо.
     
  9. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    что за ерунда?
    если нужно просто защититься от повторного запуска в одной сессии, можно, наверное, сделать и попроще
     
  10. csmok

    csmok New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2007
    Сообщения:
    19
    Возможно. Мне просто скорее всего пока не хватает опыта.
    Но я просто другого выхода не вижу. Просто есть список модулей допустимых только
    в консольной сессии и список модулей в терминальной сессии.
     
  11. csmok

    csmok New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2007
    Сообщения:
    19
    Прошу прощения за свои глупые и путаные вопросы и уточнения.
    Сел пересмотрел весь код и нашёл у себя баг. Проблема окозалась и ничего не стоит. Ещё раз прошу прощения и спасибо за помощь.