Секреты Remote Desktop Services: Remote Shadowing
Пятница, 22 - Июль - 2011 22 комментария
1. Remote Desktop и оказание удалённой помощи.
Одна из типовых задач системного администратора — оказание помощи пользователям, работая удалённо. Действительно, ездить между филиалами компании (или даже бегать между этажами одного здания) лишь ради того, чтобы прочесть непонятное пользователю окошко и нажать нужный Yes/No/Cancel, было бы крайне неэффективной идеей.
Технология Remote Desktop, поставляемая с Microsoft Windows XP, Windows Vista и Windows 7 (кроме версий Home), позволяет через сеть подключаться к рабочему столу удалённого компьютера, запускать все программы и настраивать систему, как будто сидя прямо перед ним. Но что получится при попытке соединиться с помощью Remote Desktop с рабочей станцией, на которой уже вошёл и работает пользователь? Обычно мы видим вопрос системы: «Желаете ли отключить пользователя Peter от компьютера?»
Вот же незадача — если мы выберем принудительное завершение сессии Peter, оказать ему помощь не удастся. Мы даже не сможем посмотреть, как выглядит собственно проблема. И технологию Remote Assistance также не засчитываем, так как для её работы от пользователя требуется проявление инициативы, на которое он зачастую просто неспособен. Поэтому, как правило, большинство администраторов для просмотра удалённого экрана рабочей станции применяют различные сторонние программы — платные и не очень, хорошие и «так себе».
2. А можно ли как-то решить вопрос встроенными средствами?
Одно из свойств Remote Desktop, называемое Remote Shadowing, позволяет подключиться к экрану удалённого пользователя и оказать ему помощь. Для её применения полноценный терминальный сервер не требуется, достаточно наличия в удалённом филиале одной незанятой реальной или виртуальной рабочей станции на базе Windows Professional/Business (или выше), с которой можно установить Remote Desktop-соединение. Впрочем, если это будет Windows Server, никто не обидится!
Схема применения Remote Shadowing выглядит следующим образом: сначала специалист технической поддержки, работающий на компьютере ALPHA, устанавливает Remote Desktop-соединение (RDP) с выделенным (или просто свободным в настоящий момент) компьютером BRAVO. Это инициализирует RDP-протокол, с помощью которого реализуется Remote Shadowing. Внутри окна компьютера BRAVO специалист выполняет команду подключения к компьютеру CHARLIE, на котором работает нуждающийся в поддержке пользователь:
Start → Run → shadow console /server:CHARLIE
Console в данном выражении означает название сессии пользователя. Если на компьютере CHARLIE установлена Windows XP, вместо console можно использовать номер сессии 0 (ноль); на более новых системах номера сессий начинаются с 1 и продолжают увеличиваться по мере параллельного входа в систему нескольких пользователей.
В то время как экран компьютера BRAVO остаётся заблокированным и недоступным для всех других пользователей, специалист на дисплее компьютера ALPHA получает изображение экрана CHARLIE и может оказать техническую поддержку:
3. Какие настройки необходимо выполнить, чтобы всё это заработало?
-
Включите Remote Desktop на компьютерах в удалённом филиале. Это нужно сделать как на BRAVO, с которым будет устанавливаться первоначальное соединение, так и на всех остальных CHARLIE, пользователям которых потребуется помогать;
-
В случае, если сеть REMOTE OFFICE отделена от интернета NAT-маршрутизатором, настройте пропускание порта 3389 снаружи на компьютер BRAVO. Также убедитесь, что настройки межсетевого экрана (firewall) BRAVO и CHARLIE позволяют соединяться с ними с помощью Remote Desktop;
-
Компьютер CHARLIE производит опознание (аутентифицирует) человека, который пытается удалённо перехватить экран пользователя. Для этого компьютер BRAVO высылает имя и пароль инициатора соединения — работника техподдержки — через службу Client for Microsoft Networks. Чтобы эти коммуникации произошли успешно, убедитесь, что межсетевой экран (firewall) компьютера CHARLIE не блокирует порты службы Fil
-
Начиная с Windows XP Service Pack 2, Remote Shadowing требует наличия в реестре компьютера CHARLIE определённого значения. Если его нет, создайте его вручную и перезагрузите систему:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
«AllowRemoteRPC»=dword:00000001 -
Перехват чужих экранов — операция, требующая определённых привилегий. Убедитесь, что учётная запись работника технической поддержки является членом группы Administrators на компьютере CHARLIE. Если компьютеры организованы в рабочую группу, лучше всего создать идентичную учётную запись для техподдержки на всех BRAVO и CHARLIE, если в домене — используйте единую доменную учётную запись;
Зачастую, требуется исполнять определённые законодательные требования. Например, пользователь должен получать уведомление о том, что к его экрану кто-то подключается; к тому же, следует определить, намерены мы подключаться только для просмотра экрана, либо для полного контроля, управления. Для этого настройте Group Policy на машине CHARLIE:
Start → Run → gpedit.msc
На системах Windows XP и Windows Server 2003 в контейнере Administrative Templates → Windows Components → Terminal Services настройте параметр Set Rules for Remote Control.. согласно организационным требованиям доступа. В случае, если внутри Windows Components нет папки Terminal Services, щёлкните правой кнопкой мыши по папке Administrative Templates и выберите команду Add/Remove Templates. Добавьте шаблон System.adm из папки WINDOWS\Inf, и контейнер Terminal Services появится.
На системах Windows Vista, Windows 7 и Windows Server 2008 в контейнере Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Connections настройте параметр Set Rules for Remote Control.. согласно организационным требованиям доступа.
Технология Remote Shadowing не является идеальной с точки зрения удобства использования или богатого выбора возможностей, но обладает своими преимуществами — это довольно быстрый, безопасный и не требующий дополнительного лицензирования инструмент удалённого управления. Возможно, именно такой, как вы искали!
Last Content Update: 26-Aug-2010
Здравствуйте. Интересная статья.
Возник вопрос. Этот трюк работает, если использовать его только на пк с Windows XP Professional? Или на компьютере Bravo должен быть установлен Windows Server?
На Bravo может быть XP Pro, Vista Bus/Ent/Ult, Windows 7 Pro/Ent/Ult, Windows Server 2003/2008. Или даже просто виртуальная машина, установленная на Alpha.
При попытке запуска появляется сообщение:
Сеанс может казаться зависшим, пока удаленное управление выполняет
согласование управления.
Подождите…
Ошибка удаленного управления. Код ошибки 1
Ошибка [1]:Неверная функция.
Что за ошибка 1? Где можно найти описание ошибок и как диагностировать?
Потому что эта фича работает только от подключения по RDP. С вашей локальной машины она работать не будет. То есть подключаетесь на одну машину по RDP, далее от неё можете подключиться к чужой сессии.
Единственное, я не понял как от сессии отключаться, не закрывая окно RDP.
По умолчанию Ctrl + *
Вопрос номер раз: Как настроен параметр «Спрашивать разрешение пользователя на перехват его сессии»? Если указано «Запрашивать», то пользователь на том конце видел приглашение?
Установил «подключать без разрешения», экспериментирую на тестовой виртуалке. Что-то похожее загуглить не удается, везде вопрос без ответа.
Тогда вопрос номер два: каково состояние firewall, не блокируется ли аутентификация пользователя? Каковы режимы экранов? Какой RDP-клиент используется? В общем, лучше опишите ситуацию полностью, не заставляя вызывать Нострадамуса.
Подскажите таким образом реально перехватить сессию пользователя подключенного
локально без запроса «testdomain\administrator запрашивает удаленное
управление вашим сеансом»?
У меня получилось только перехватить сессию пользователя без запроса только если
он был подключен по RDP.
Конец статьи об этом и говорит. Запрос разрешения на соединения регулируется в групповой политике того компьютера, к которому подключаетесь. И это работает.
Да, спасибо заработало. Просто изначально локальную групповую политику изменил для пользователя а не для ПК.
Скажите возможно сделать чтобы при подключении к пользовательской сессии на удаленный компьютер, экран у пользователя не блокировался. Аналогия radmina возможность тыкнуть пользователю мышкой в нужное место чтобы он увидел. Спасибо!
Dear evg,
Remote Shadowing экран пользователя не блокирует. В этом и есть суть технологии. Об этом и статья.
Подскажите, а могу я где-то увидеть сколько и когда я работала по ремоут десктопу?
Dear Alena,
Можно включить аудит успешных входов и выходов пользователей (примерно как в https://blog.windowsnt.lv/2011/08/31/tracking-user-activity-russian/ ), затем фильтровать журнал безопасности по событиям входа, тип логона 10. Но опасаюсь, что на практике это будет сложновато и не совсем гарантированно.
ммм очень надо посчитать время. отработанное таким образом- чтобы показать заказчикую. может где-то есть типа статистики,
Если аудит заранее не был включён, а оно уже случилось, то никак. Особенно на стороне подключавшегося работника. Если аудит был настроен, то администратор может попытаться подсчитать, переворошив журналы. Которые, возможно, все данные долго не хранят.
Других возможностей (без специального стороннего оборудования) не вижу.
В Win7 и выше вполне успешно ведется журнал и без аудита. Просмотр событий -> Журналы приложений и служб -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Operational. Там история всех локальных и RDP входов
а чем наличие виртуальной машины отличается её наличием на bravo ? т.е. клиент с альфа на виртуальную машину на bravo, с неё на charlie
Ещё раз задайте вопрос?
гм, маленько опечатался
на charlie будет виртуальная машина bravo, через неё будет коннектиться alpha к charlie, в статье писалось про её наличие на альфе, есть ли разница ? к слову, что так, что так не смог подконнектиться через виртуальную машину (т.е. альфа-чарли получалось а набраво выйти уже не получалось) консоль писала «session id 0 не найдена», команда была shadow 0 /server:192.168.1.75, система к которой хотел подключаться — Win XP, там сессия по идее нулевая
Можете воспользоваться моей программой, которая находит открытые терминальные сессии на сервере из списка и, кроме того, позволяет их принудительно закрыть. http://kovanev.net/downloads/my-soft/218-find-rdp-sessions