В Windows XP появилась технология для удаленного подключения к рабочему столу с целью помочь пользователю в решении проблем - Remote Assistance, или Удаленный Помощник.
Технология не очень удобная потому, что для подключения администратора к компьютеру клиента самому пользователю тоже надо кое-что сделать (отправить запрос Remote Assistance). Но в арсенале администратора такой метод доступа может быть не лишним. Иногда это удобно, если нет radmin-а или DameWare - Remote Assistance уже встроен в систему, и не нужно ничего устанавливать. Единственное ограничение - оба компьютера, и клиент (компьютер администратора) и сервер (компьютер пользователя, которому помогает администратор через Remote Assistance) должны работать под управлением Windows XP (и, возможно, клиент может еще работать под Windows 2003, поскольку эта система родственна XP). Во время запуска Remote Assistance на сервере временно автоматически отключается файервол (если верить справке Windows XP, но лучше на всякий случай файервол отключить). С точки зрения сетевых коммуникаций Remote Assistance использует встроенный в XP терминальный сервер и работает точно так же, как и Remote Desktop. Отличие от Remote Desktop в том (и это важное отличие, если необходима именно помощь пользователю), что при работе Remote Assistance экран сервера видят обе стороны (как в radmin и DameWare), а при использовании Remote Desktop происходит принудительное завершение сессии локального пользователя. Как использовать Remote Assistance, процесс по шагам:
1. На сервере (компьютер пользователя, которому помогает администратор через Remote Assistance) включаем Remote Assistance: Start -> Settings -> Control Panel -> System -> закладка Remote -> должна стоять галка Allow users to connect remotely to this computer (панель Remote Desktop). Там же ставим галку Allow Remote Assistance invitations to be sent from this computer (панель Remote Assistance). На всякий случай поверяем, что запущена служба Terminal Services (Start -> Settings -> Control Panel -> Administrative Tools -> Services или net start TermService).
2. Отключаем файервол на всякий случай (хотя в help Windows говорится, что это не требуется (Start -> Settings -> Control Panel -> Windows Firewall), либо останавливаем службу Windows Firewall/Internet Connection Sharing (ICS) - Start -> Settings -> Control Panel -> Administrative Tools -> Services или net stop SharedAccess.
3. Готовим запрос на доступ администратора через Remote Assistance. На сервере (компьютер пользователя, которому помогает администратор через Remote Assistance) делаем Start -> All Programs -> Accessories -> Remote Assistance. Щелкаем по ссылке "Invite someone to help you". Запускается нехитрый мастер, который сразу предлагает отправить запрос либо через Windows Messenger, либо через Outlook Express. Если по каким-то причинам они не настроены, есть еще третий способ - ссылка "Save invitation as a file (Advanced)" внизу. Она позволяет сохранить запрос в виде файла с расширением "*.msrcincident", и потом Вы должны этот файл каким-то образом передать администратору, чтобы он мог подключиться. Способы передачи могут быть разные - дискета, общая сетевая папка, ftp, email.
4. Администратор на своем компьютере двойным щелчком открывает полученный файл запроса, запускается клиент Remote Assistance, который подключается к серверу (в качестве сервера выступает компьютер пользователя, отправившего запрос) по протоколу RDP. При этом пользователь получает сообщение, что к его серверу производится попытка подключения Remote Assistance, и если пользователь подтвердит подключение, то оно устанавливается. И пользователь, и администратор видят один и тот же экран десктопа, и получают набор утилит для совместной работы, в числе которых есть текстовый чат.
5. В некоторых конфигурациях сетей необходимо предварительно подправить файл запроса. Например, если сервер находится за роутером NAT и имеет приватные адреса (192.168.x.y и т. п.). Это легко сделать, так как файл запроса - всего лишь обычный текстовый файл, где в понятной форме можно найти параметры подключения. Вот пример такого файла RAInvitation.msrcincident:
<?xml version="1.0" encoding="Unicode" ?><UPLOADINFO TYPE="Escalated"><UPLOADDATA USERNAME="John" RCTICKET="65538,1, 192.168.7.1:3389; 192.168.55.1:3389; 192.168.255.1:3389; vm:3389, *, pwXZUkKqxMS2zVoTavB6Pmr28BXhX46caZetCBx0B+I=, *, *, 0zjo2leurw5/UdMf7Eknrkb5Ekg=" RCTICKETENCRYPTED="0" DtStart="1220932148" DtLength="60" PassStub="" L="0" /></UPLOADINFO>
Как можно догадаться, возможные адреса (куда будет коннектиться клиент Remote Assistance) в виде пар IP(или имя):порт прописаны с параметре RCTICKET. Эти адреса берутся от всех доступных на компьютере интерфейсов (терминальный сервер по умолчанию слушает их все на порту 3389). В этом примере на сервере есть 3 интерфейса с адресами 192.168.7.1 (адрес внутри локальной сети), 192.168.55.1 (VMware Virtual Ethernet Adapter for VMnet1) и 192.168.255.1 (VMware Virtual Ethernet Adapter for VMnet8), и, кроме этого, сервер имеет имя vm. Проблем не будет, если мы подключаемся через одну из этих доступных сетей. Если же, например, нам нужно подключиться через Интернет, то в файл запроса необходимо внести исправления. Предположим, что NAT-маршрутизатор транслирует приватный адрес и порт 192.168.7.1:3389 в публичный адрес и порт 93.128.79.149:3390. В этом случае содержимое файла RAInvitation.msrcincident будет таким:
<?xml version="1.0" encoding="Unicode" ?><UPLOADINFO TYPE="Escalated"><UPLOADDATA USERNAME="John" RCTICKET="65538, 1, 93.128.79.149:3390, *, pwXZUkKqxMS2zVoTavB6Pmr28BXhX46caZetCBx0B+I=, *, *, 0zjo2leurw5/UdMf7Eknrkb5Ekg=" RCTICKETENCRYPTED="0" DtStart="1220932148" DtLength="60" PassStub="" L="0" /></UPLOADINFO>
Использовался материал статьи http://www.avkuzmin.ru/2007/07/remote-assistance-remote-desktop.html.
|