Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.01;
Скачать: CL | DM;

Вниз

нужно запустить процесс под сессиями юзеров terminal services   Найти похожие ветки 

 
Makhanev Alexander   (2006-08-21 13:20) [0]

Есть win2003 server на котором развернуты windows terminal services.
Есть служба, работающая на том же сервере.

Нужно сделать так, чтобы служба могла запустить процесс под всеми существующими сессиями пользователей terminal services без relogon"а пользователя.

Пока копаю в сторону CreateProcessAsUser и получение токенов активных юзеров через LogonUser...

Может кто-то поджскажет, является ли этот путь действенным и единственным?

Буду благодарен за помощь.


 
Makhanev Alexander   (2006-08-21 20:29) [1]

может кто-то поможет?


 
Leonid Troyanovsky ©   (2006-08-21 21:00) [2]


> Makhanev Alexander   (21.08.06 13:20)  

> Нужно сделать так, чтобы служба могла запустить процесс
> под всеми существующими сессиями пользователей terminal
> services без relogon"а пользователя.


Пардон, а почему оное надо делать именно сервису,
а не к.-л. логон-скрипту, или вульгарному автостарту?

--
Regards, LVT.


 
Ketmar ©   (2006-08-21 21:13) [3]

мой телепатор подозревает, что это что-то вроде шедулера или мессенджера? так?


 
DiamondShark ©   (2006-08-21 21:49) [4]

Что значит "под всеми существующими сессиями"?

Это чтобы окошки у пользователей видны были? Если да, то в структуре STARTUPINFO есть поле lpDesktop, в котором можно указать имя десктопа, к которому привязать процесс, в формате windowstationname\desktpname.
Для каждой терминальной сессии существует отделная window station.

Пишу чисто умозрительно, т.к. серверной операционки под рукой нет, проверить, как всё это будет работать не могу.


 
Чапаев ©   (2006-08-21 22:42) [5]

Да... В MSDN ещё преогромный пример есть на использование LogonUser()+CreateProcessAsUser()+манипуляция с оконной станцией и рабочим столом, чтоб пользователь мог с ними нормально работать.


 
Makhanev Alexander   (2006-08-22 00:39) [6]


> Leonid Troyanovsky ©   (21.08.06 21:00) [2]

Автостарт при логоне есть, но дело в том, что процесс надо запускать, не дожидаясь того, когда юзер перелогинится.


> Ketmar ©   (21.08.06 21:13) [3]
>мой телепатор подозревает, что это что-то вроде шедулера или мессенджера? так?

Нет, не так. Это terminal services версия одного корпоративного софта.


> DiamondShark ©   (21.08.06 21:49) [4]
>Это чтобы окошки у пользователей видны были?

Вроде того. Мысль интересная, спасибо. Посмотрим...


> Чапаев ©   (21.08.06 22:42) [5]
>Да... В MSDN ещё преогромный пример есть на использование LogonUser( +CreateProcessAsUser()+манипуляция с оконной станцией и рабочим столом, чтоб пользователь мог с ними нормально работать.


Странно, что я не догадался покопаться в своем msdn"е. Спасибо за идею. Сейчас поищем...


 
Makhanev Alexander   (2006-08-22 11:51) [7]


> DiamondShark ©   (21.08.06 21:49) [4]


Упёрся в получение десктопов терминальных юзеров, так как:
The EnumDesktops function enumerates all desktops associated with the current window station of the calling process.

А как получить desktop по window station, пока не нашел...


 
Makhanev Alexander   (2006-08-22 11:55) [8]


> Чапаев ©   (21.08.06 22:42) [5]

Может, Вы имеете в виду статью "Starting an Interactive Client Process in C++
"?


 
DiamondShark ©   (2006-08-22 12:32) [9]


> Makhanev Alexander   (22.08.06 11:51) [7]

У вас какие-то неправильные пчёлы.

BOOL EnumDesktops(
 HWINSTA hwinsta,
 DESKTOPENUMPROC lpEnumFunc,
 LPARAM lParam
);

hwinsta
[in] Handle to the window station whose desktops are to be enumerated. This handle is returned by the CreateWindowStation, GetProcessWindowStation, or OpenWindowStation function


 
DiamondShark ©   (2006-08-22 12:45) [10]

Только что попробовал. Нормально енумеруются.


 
Чапаев ©   (2006-08-23 19:12) [11]

> [8] Makhanev Alexander   (22.08.06 11:55)

Насколько я помню, именно её.



Страницы: 1 вся ветка

Текущий архив: 2006.10.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.035 c
15-1157968326
Сергей_С
2006-09-11 13:52
2006.10.01
DCU, собранная под Delphi6 не компилируется под Delphi7


1-1155977843
Strech
2006-08-19 12:57
2006.10.01
Активная форма


2-1158226180
megasecure
2006-09-14 13:29
2006.10.01
А вот еще проблемка с ADO...


2-1158135307
Chaser
2006-09-13 12:15
2006.10.01
Как определить скорость копирования файла по сети


2-1157709809
slayer2061
2006-09-08 14:03
2006.10.01
где скачать саундтрек?