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

41. lurik 09.11.11 12:34 Сейчас в теме
А чем тогда не устраивает Remote Assistance который как раз для решения этой задачи и предназначен?
Имя терминального сервера на котором залогинен пользователь несложно вычислить скриптом. Дальше просто отправляете ему предложение поддержки и ему нужно нажать "разрешить". Логин/пароль пользователя не нужен (это кстати вообще небезопасно когда кто то кроме пользователей знает их пароли).
Пользователи могут и сами отправлять запросы на поддержку, тогда вам не придётся и имя сервера вычислять.
Заодно и на междугородних звонках секономите - в RA есть возможность чата, и вроде даже голосового общения :)
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
42. adapter 417 15.11.11 10:59 Сейчас в теме
экономить тут не выйдет. возможность голосового общения предпологает еще и гарнитуру на той стороне, хороший канал и более адекватного пользователя. Вариант с поддержкой, отправить приглашение, нажать "разрешить" (для этого еще поддержка в правах должна быть включена), пользователь должен знать кому отправить приглашение, а если саппортов несколько, а если отправил конкуренту? ... в общем хороший вариант, но все таки подключение в один клик лучше.

Всем спасибо за советы, но тема уже не актуальная. В один клик реализовано в проекте HelpDesk. http://infostart.ru/public/73535/

Из базы пользователей быстрым поиском в панели удаленного управления выбирается пользователь, по нему уже программа сама ищет нужный терминальный сервер, ищет нужный логин пароль подключения (админский пароль, пользовательский знать не надо). Кнопка connect и ты управляешь его мышкой. Все происходит мгновенно, пока с пользователем общаешься по телефону. От момента когда он назвал свое фио до его рабочего стола проходит около 3-х секунд.

Пользователей больше тысячи, терминальных серверов десятки, поддерживаемых баз данных более 30. Саппортов второй линии техподдержки двое. Кстати подключения не ко всем терминальные. HelpDesk выбирает из базы данных к кому как можно подключаться и предлагает выбор если к этой точке доступно несколько способов подключения: по IP или имени компьютера, с персональной или общей авторизацией (для разных подразделений свои наборы), RDP, VNC, DeamWare, TeamViewer или еще что. Без HelpDesk теперь просто никак. Тратить по полчаса на каждое подключение - вот что дорого, экономить свое время надо.
43. adapter 417 11.06.09 09:12 Сейчас в теме
Использую ActiveX RDP для программного создания подключения к серверу терминалов из 1С8. Но там не получается подключиться в одну сессию с пользователем чтоб погонять его мышку, помочь, показать. Сеанс перехватывается админом, пользователя отключает. Как все таки программно реализовать именно удаленное управление сеансом?
44. jmw 60 11.06.09 09:15 Сейчас в теме
UltraVNC - подключаешься и рулишь!
45. adapter 417 11.06.09 09:36 Сейчас в теме
спасибо, VNC есть, искусством правого клика в диспетчере на терминальном сервере тоже владею и пр. Хотелось бы ответов по существу сабжа.
46. adapter 417 11.06.09 12:12 Сейчас в теме
что никто никогда не сталкивался что ли?
47. vip 11.06.09 13:12 Сейчас в теме
ЗапуститьПриложение("shadow "+НомерСеанса);
48. adapter 417 11.06.09 13:29 Сейчас в теме
ага, классно. тока это не программно, а командной строкой. Когда ActiveX RDP программно создает окно подключения то управляешь свойствами этого окна - размер, цветопередача, фулскрин и т.д. Но не контекстом терминального сервера. т.е. если я напишу просто ЗапуститьПриложение("shadow "+НомерСеанса); оно выполнится на локальной машине, а не в окне терминала.
50. adapter 417 11.06.09 14:02 Сейчас в теме
Для функционирования вышеизложенной схемы необходимо выполнить следующие процедуры:
1. Установить на клиентских компьютерах пользователей модифицированный ICA клиент;
- Первичная установка ICA клиента v10+ или обновление ICA клиента v10 до версии v10+;
ВНИМАНЕ! Обновление с версий младше версии v10 невозможно (разные инсталяторы)!
2. Установить COM-server на Citrix-серверах (инсталлятор приложен, или руками зарегистрировать);


У меня нет ни Цитрикса ни желания обновлять несколько сотен клиентских машин разных виндов за сотни км друг от друга в слепую
51. adapter 417 11.06.09 14:05 Сейчас в теме
кто нибудь может помочь с объектной моделью RDP ActiveX клиента MS? или WMI терминального сервера? API функции на худой конец? Я MSDN мелкомягкий облазил - не помогло. Видимо не мой уровень :(
52. vip 11.06.09 14:09 Сейчас в теме
(9) Дай ссылку на активикс.
Попробую.
53. vip 11.06.09 14:10 Сейчас в теме
(9+) Если не секрет, почему именно активикс.
54. adapter 417 11.06.09 14:50 Сейчас в теме
нашел такой пример здесь же на ИС,
http://infostart.ru/projects/2426/
других способов программных не знаю. Поэтому так.

там кстати с регистрацией проблема. Если белый экран выскакивает значит на форму надо руками заново повесить такой же клиент только из своей винды.
Конфигуратор\форма\ вставить ActiveX. Имя "Microsoft RDP Client Control"

тоже не знаю как обойти. По ProgId "MsRDP.MsRDP" тоже не везде цепляется
55. vip 11.06.09 15:14 Сейчас в теме
(12) Так зачем все-таки именно активикс?
56. adapter 417 11.06.09 15:42 Сейчас в теме
а как еще? командной строкой mstsc.exe /TermilaServer ? тогда логин пароль не передашь. Все помнить и руками вводить не подходит, каждому отдельный rdp файл настроек где то делать и держать тоже не вариант.
57. vip 11.06.09 15:46 Сейчас в теме
(14) Вообще ничего не понятно.
Опиши задачу подробней, по шагам.
Мне кажется, ты что-то не то задумал.

Кто должен подключаться? Откуда? Зачем?
58. adapter 417 11.06.09 15:58 Сейчас в теме
пишу конфу для облегчения HelpDesk'a, помощи пользователям. Конфа хранит учетки, пароли, имена компов кучу разной информации. Баз данных разных много, пользователей в каждой из них тоже, большинство этих пользователей удаленные. Управление терминальными сессиями одна из маленьких подзадач. Надо во время телефонного звонка (обращения за помощью) быстренько выбрать пользователя из справочника и подключиться к его удаленному столу
59. adapter 417 15.06.09 16:23 Сейчас в теме
60. vip 15.06.09 16:33 Сейчас в теме
(16) К чужому терминальному сеансу можно подключиться, только если ты сам находишься в терминале.
Так что сначала ты сам должен подключиться к удаленному серверу.
61. adapter 417 15.06.09 16:53 Сейчас в теме
ну с этим проблем нет - подключаюсь под админской учеткой через RDP ActiveX, а дальше как?
62. vip 15.06.09 17:03 Сейчас в теме
(19) Куда подключаешься?
К рабочему столу сервера? Какие проблемы тогда?
63. adapter 417 15.06.09 17:14 Сейчас в теме
см (5) и (6). Кажется мы ходим по кругу
64. vip 15.06.09 17:22 Сейчас в теме
(21) Поехали сначала.
Зачем тебе активикс? Только для того, чтобы терминальное окно было на форме 1С?

Проще же наделать файлов *.RDP и привязать их к списку удаленных серверов.
Щелкаешь по выбранному серверу и запускается уже настроенный файл RDP.
И подключайся к кому хочешь.
65. adapter 417 15.06.09 17:34 Сейчас в теме
есть одна из баз 1С8. В ней работает 100 человек. Все в терминале. Каждый в своей сесии. Логин\пароль каждого знаю. Как подключиться программно сразу к его сессии и поелозить его мышкой? Потому что есть еще 400 пользователей от других баз. Пока из 500 общего списка найдешь одного в диспетчере задач..... К тому же терминальных серверов 5. и ферма автоматического распределения нагрузки между ними. Поэтому я не знаю на каком терм.сервере мне искать этого юзверя. Ну с фермой пока заморачиваться не будем. На одном бы терм.сервер асилить подключение к сессии.
66. vip 15.06.09 17:41 Сейчас в теме
(23) А зачем его искать?
Код сеанса получаешь query user Pupkin
И подключаешься к нему.
67. adapter 417 15.06.09 23:15 Сейчас в теме
Пример кода можешь дать? А то я пока тебя не понял
68. vip 15.06.09 23:23 Сейчас в теме
(25) Чего еще не хватает?

Звонит тебе юзер Pupkin с просьбой помочь.

1. ЗапуститьПриложение("query user Pupkin > c:\temp.txt");
2. Из c:\temp.txt узнаешь код сеанса пользователя Pupkin
3. ЗапуститьПриложение("shadow "+КодСеанса)

Все.
69. adapter 417 15.06.09 23:41 Сейчас в теме
только выполнять твой код уже на сервере терминалов надо. А как со своего компа на терминальный сервер в нужную сессию попасть?
70. ron1 16.06.09 00:48 Сейчас в теме
71. vip 16.06.09 07:16 Сейчас в теме
72. adapter 417 16.06.09 11:12 Сейчас в теме
Ты не прав, решение нашли. в объектной модели RDP ActiveX есть параметр запуска программы при старте

RDP.SecuredSettings.StartProgram="cmd.exe /C ""shadow 11""";


И полчается что при коннекте создается теневое управление сеансом
73. vip 16.06.09 11:41 Сейчас в теме
(30) Почему неправ?
Какая разница? То, что ты написал, это "alternate shell:" в файле RDP.

1. Используя активикс, перед запуском shadow ты все равно сначала попадаешь в свой терминальный сеанс.
2. Как ты вычислишь код чужого сеанса без захода в свой терминальный сеанс?

Так что ваше решение отличается от моего только тем, что не будет работать. :))
74. adapter 417 16.06.09 12:08 Сейчас в теме
1. ну и что? это и требовалось - и в терминал зайти под своей учеткой, и в теневое управление попасть под другой.

2. ID сеанса можно получить разными способами. например через консольную команду qwinsta. или через WMI, щас в MSDN роюсь, где то видел
75. vip 16.06.09 12:22 Сейчас в теме
(32) Сдаюсь. Разговор глухого со слепым.

Твой вопрос: только выполнять твой код уже на сервере терминалов надо.
т.е. до команды shadow по условиям задачи на сервер терминалов зайти нельзя.

Твой ответ: ну и что? это и требовалось - и в терминал зайти под своей учеткой
т.е. до команды shadow по условиям задачи на сервер терминалов зайти можно.

Твой вопрос: А как со своего компа на терминальный сервер в нужную сессию попасть?
т.е. НЕ ЗАХОДЯ В СВОЙ сеанс, попасть сразу в чужой.

Твой ответ: ну и что? это и требовалось - и в терминал зайти под своей учеткой, и в теневое управление попасть под другой.

И какая разница, как получить код сеанса? Его все равно надо получить ПЕРЕД запуском shadow.
76. sound 535 16.06.09 12:30 Сейчас в теме
Немного не по сабжу и наверняка баянище, но тоже про терминалы, в свое время долго искал.
Как из XP сделать терминальный сервер. Когда нужно 2-5 юзеров повесить на отдельный сервак в терминалку, но ставить 2003 не вариант. Можно пропачить XP, и относительно нормально работать не мешая друг другу (юзеров не выкидывать и админам админить). Это конечно все плохо и незаконно ("пачить"), но кого это останавливало. Если кому интересно, пишите, могу выслать патч :)
77. vip 16.06.09 12:34 Сейчас в теме
(34) Это совсем не по сабжу и про патч проще почитать в инете, чем получить от тебя.
78. adapter 417 16.06.09 13:15 Сейчас в теме
да, чего то со взаимопониманием туговато у нас. Не видел в твоих предложениях законченной схемы.
1. Рабочая станция
2. коннект
3. терминальный сервер
4. управление пользовательской сессией.

Видел варианты через ручное создание rdp файлов настроек. это 1-3 и тупик.

Или 3,4 без 1,2. А чтобы от начала до конца и программно не видел.

Ну ладно. Все равно спасибо за долгие попытки помочь.
Я как доделаю положу пример
79. vip 16.06.09 13:25 Сейчас в теме
(36) А я и не собирался давать рабочий код.
Я пытался донести до тебя, что невозможно "А как со своего компа на терминальный сервер в нужную сессию попасть?"

И это независимо от того, применяешь ли ты активикс (похоже глючный) или просто mstsc.
Рекомендую отказаться от активикса. Никаких преимуществ он добавляет.
80. adapter 417 16.06.09 13:33 Сейчас в теме
я ж сказал что все уже заработало! с 1 по 4. программно. что не так?
81. vip 16.06.09 13:46 Сейчас в теме
(38) И с самого начала должно было работать. Схема самая обычная.
Что в твоем понятии программно? Часто употребляешь это слово, хочу понять.
82. adapter 417 16.06.09 13:50 Сейчас в теме
это значит что нажал кнопку и получил результат :) автоматически, выполнением кода программы а не дополнительных клацаний мышкой, ввода каких то команд и пр.
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день