Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Вниз

нужно запустить процесс под сессиями юзеров 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.013 c
8-1142090760
Endor
2006-03-11 18:26
2006.10.01
OGG, WMA


9-1136550582
кобзон
2006-01-06 15:29
2006.10.01
Вопрос по DirectX


15-1158068820
Александр Иванов
2006-09-12 17:47
2006.10.01
Tashkent Mastak Party


2-1157716628
Loginov Dmitry
2006-09-08 15:57
2006.10.01
Вопрос по MIDAS


1-1156158639
webpauk
2006-08-21 15:10
2006.10.01
Градиентная линия





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский