none
управление терминальными сессиями RRS feed

  • Вопрос

  • Использую ActiveX RDP для программного подключения к серверу терминалов. Но не нашел там возможности управления сессиями пользователей. Мне надо программно подключиться к окну пользователя, поелозить его мышкой. Может быть это можно сделать с помощью WMI или еще как?

Ответы

  • голосовое общение подразумевает наличие гарнитуры у всех, использование удаленного помощника как раз без пароля очень опасно, поэтому закрыто. Да и зачем ждать пока тетка бухгалтер кнопку разрешения тыкнет (если не промахнется)  не хочется.

    Мы нашли такой выход. в объектной модели RDP ActiveX есть параметр запуска программы при старте
    RDP.SecuredSettings.StartProgram="cmd.exe /C ""shadow 11""";

    И получается что при коннекте создается теневое управление сеансом.
    16 июня 2009 г. 9:44

Все ответы

  • Использую ActiveX RDP для программного подключения к серверу терминалов. Но не нашел там возможности управления сессиями пользователей. Мне надо программно подключиться к окну пользователя, поелозить его мышкой. Может быть это можно сделать с помощью WMI или еще как?
    Administrative Tools:

    Click on the RDP-Tcp connection inside the TS Configuration window.

    1. From the Permissions tab, click Advanced.
    2. Select the Users permission entry and choose View/Edit.
    3. In the resulting window, grant the Users group the Remote Control right.
    To discover the users logged on to the same server you are using, type query user at a command prompt. You’ll receive each logged in user’s username, session name and ID, status, and their idle time and login time. The session ID of the user is what you want.

    To shadow, type shadow <session ID > into the
    command prompt. The user will get a dialog box requesting permission to let you
    shadow their session. If they accept, you’re in. To stop the session, type
    Control-*.

    If the user is on another TS server, type query user to list the users on that remote TS server.

    To shadow the remote user, type shadow <session ID >/server:<terminal
    server name
    >
    .

    http://redmondmag.com/articles/2005/04/01/7-terminal-services-tips.aspx


    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
  • Подключиться к сессии пользователя вы можете только  локально на терминальном сервере, поэтому ActiveX RDP  вам тут не помощник.
    Т.е. вам нужно подключится к TS и запустить там оснастку управления, а уже с помощью ее подключится к сеансу другого пользователя.
    Сазонов Илья http://www.itcommunity.ru/blogs/sie/
    Модератор
  • shadow <session ID >
    это хорошо но при подключении через RDP ActiveX я не имею контекста выполнения команд от имени этого пользователя. Свернуть, закрыть окно программно можно, а запустить внутри команду системы я не смог. Так что не подошел совет :(




    15 июня 2009 г. 13:16
  • в теории классно. А какой нить пример кода можно? а то даже не знаю как подступиться
    15 июня 2009 г. 13:16
  • IMHO единственное нормальное решение вашей подзадачи - сделать клиент-серверное приложение, один из компонентов которого будет запускаться в сессии пользователя (через HKCU\...\Run например), и получать команды от другого компонента. Разумеется можно это и на скриптах реализовать, но зачем... ?

    Расскажите пожалуйста, чего вы хотите добиться таким образом? Я уверен что существует возможность сделать это более простым и надёжным способом.


    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    16 июня 2009 г. 4:35
    Модератор
  • хочу автоматизировать задачу техподдержки пользователей. Пользователей несколько сотен, терминальных серверов тоже много. На каждом из терм.серверов одновременно работают пользователи от разных учетных сервисов (приложений, программ). Есть программа для учета HelpDeska, в ней хранятся все логины пароли и пр. Хочу из этой программы подключаться к сеансу выбранного пользователя. Не засталять его ждать во время междугороднего звонка пока я определю нужный терминальный сервер, логин пароль, программу по которой пользователь просит помощи, подсоединюсь под админом, найду его учетку в диспетчере задач терм. сервера, подключусь удаленным управлением к его сеансу. А сразу выбрал пользователя в программе HelpDeska из списка и попал в его окно.
    16 июня 2009 г. 6:14
  • А чем тогда не устраивает Remote Assistance который как раз для решения этой задачи и предназначен?
    Имя терминального сервера на котором залогинен пользователь несложно вычислить скриптом. Дальше просто отправляете ему предложение поддержки и ему нужно нажать "разрешить". Логин/пароль пользователя не нужен (это кстати вообще небезопасно когда кто то кроме пользователей знает их пароли).
    Пользователи могут и сами отправлять запросы на поддержку, тогда вам не придётся и имя сервера вычислять.
    Заодно и на междугородних звонках секономите - в RA есть возможность чата, и вроде даже голосового общения :)
    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    16 июня 2009 г. 7:28
    Модератор
  • голосовое общение подразумевает наличие гарнитуры у всех, использование удаленного помощника как раз без пароля очень опасно, поэтому закрыто. Да и зачем ждать пока тетка бухгалтер кнопку разрешения тыкнет (если не промахнется)  не хочется.

    Мы нашли такой выход. в объектной модели RDP ActiveX есть параметр запуска программы при старте
    RDP.SecuredSettings.StartProgram="cmd.exe /C ""shadow 11""";

    И получается что при коннекте создается теневое управление сеансом.
    16 июня 2009 г. 9:44