- Настройка удалённого подключения RemoteApp к Windows Server 2012
- 1. Публикация приложения на сервере
- Способ №1 (ручное добавление новой ветки в реестр)
- Способ №2 (создание файла .reg)
- Создание ярлыка для подключения к RemoteApp
- Использование программы RemoteApp Tool
- RDP-ссылка на RemoteApp в Windows Server 2012 R2
- Сайт ARNY.RU
- Сервер
- Клиенты
- Траблшутинг
- Область применения
Настройка удалённого подключения RemoteApp к Windows Server 2012
Для того, чтобы дать возможность клиентам работать с базой данных на сервере, но не давать допуск до полноценного RDP-сеанса на удалённом сервере (Windows Server 2012 R2) мы настроим RemoteApp на примере программы «Microinvest Склад Про». Цель этой технологии – ограничить подключение пользователя до рабочего стола и разрешить ему запуск только определенной программы. RemoteApp реализуется с помощью встроенных средств Windows Server, но с помощью стороннего приложения RemoteApp Tool (http://www.kimknight.net/remoteapptool) это можно сделать гораздо быстрее и проще. Рассмотрим способы:
1. Публикация приложения на сервере
Способ №1 (ручное добавление новой ветки в реестр)
В созданной нами ветке создать несколько параметров:
Способ №2 (создание файла .reg)
- Создать и запустить файл с расширением .reg со следующим содержимым:
Создание ярлыка для подключения к RemoteApp
- Создать текстовый файл с именем «ProgramName.rdp» со следующим содержимым:
Использование программы RemoteApp Tool
Создание RemoteApp подключения с помощью этой программы происходит гораздо проще и быстрее.
- После установки и запуска программы в стартовом окне нажимаем на «+» в левом нижнем углу
- В следующем окне указываем путь до исполняемого файла exe файла нужной нам программы и нажимаем «Открыть» в правом нижнем углу.
- После этого в стартовом пространстве появится ярлык выбранного нами файла, выделим его и нажмем «Create Client Connection» для начала создания протокола подключения RemoteApp
- Далее откроется окно создания RDP файла, здесь можно изменить настройки подключения или оставить по умолчанию, далее нажимаем «Create» в правом нижнем углу окна.
- Выберем директорию, где будет сохранен файл и укажем для него название и нажмём «Сохранить» в правом нижнем углу
После создания файла подключения любым из способов его нужно передать удобным способом на клиентские компьютеры, с которых будут происходить подключения.
- Запускаем файл и вводим учётные данные пользователя удаленной машины для подключения, нажимаем «Ок»
- после чего запустится указанное приложение, в нашем случае: Microinvest Склад Про
Процесс использования приложений через RemoteApp создает впечатление того, что пользователь работает на своём пк, а не на удаленной машине. Таким образом мы обезопасим сервер от человеческих факторов, приводящих к повреждению системы и неработоспособности машины.
RDP-ссылка на RemoteApp в Windows Server 2012 R2
Говорят, что в Windows Server 2012 выпилили функционал по созданию rdp ярлыков на удалённые приложения. Но это не совсем так. Расскажу как сделать rdp ярлык без особых проблем.
Устанавливаете приложение на сервер. Убедитесь, что входите в группу пользователей, которым доступны удалённые приложения.
Публикуете приложение как RemoteApp.
Если вы знаете ссылку к web-интерфейсу RemoteApp вашего терминального сервера, то хорошо, если не знаете, то запускаете оснастку IIS на терминальном сервере:
В Default Web Site находите приложение RDWeb.
Справа нажимаете Browse *:443.
Откроется ссылка вида:
Теперь вы можете открыть эту ссылку в своем браузере (не IE!) Google Chrome, заменив localhost на адрес сервера.
Выполняете вход под доменной учёткой.
Кликаете на нужное приложение. и получаете требуемый rdp файлик.
Теперь этот файлик можно красиво переименовать и рассылать своим пользователям.
Сайт ARNY.RU
Начну с главного: всё нормально и быстро настраивается. Опубликовать remoteapp в 2012 R2 без домена не получится, но это и не нужно. При обновлении 2008 R2 до 2012 R2 на этапе проверки совместимости, установка попросила удалить роль Удаленных рабочих столов. Удивился. Ладно.. После обновления стало понятно — Microsoft в очередной раз перехитрила саму себя: теперь нормально работать с RDP можно лишь в составе домена. Зачем.. Если у меня сервер 1С на 5 бухгалтеров, зачем мне роль AD DS? Думаю я не одинок в этом вопросе. Почитал в интернете — решение есть! Кто-то ставил роль контроллера домена, в виртуалке поднимал ещё один сервер, вводил в домен и на нём уже удаленные рабочие столы. Всё проще. Солюшенов несколько, решил собрать воедино.
Сервер
Установка роли
Службы удаленных рабочих столов (Remote Desktop Services), Далее, отмечаем чекбоксы: Лицензирование удаленных рабочих столов (Remote Desktop Licensing), Узел сеансов удаленных рабочих столов (Remote Desktop Session Host) — со всем соглашаемся, установка, перезагрузка.
В Диспетчере серверов, в пункте меню Средства, появилась закладка — Terminal Services.
Настройка параметров RDP
Настройка всех параметров RDP теперь в групповых политиках. Отдельной графической оснастки, как было раньше, нет:
- Win+R — gpedit.msc — Конфигурация компьютера (Computer Configuration);
- Административные шаблоны (Administrative Templates) —
Компоненты Windows (Windows Components); - Службы удаленных рабочих столов (Remote Desktop Services) —
Узел сеансов удаленных рабочих столов (Remote Desktop Session Host) —
Лицензирование (Licensing).
Редактируем два параметра:
- Использовать указанные серверы лицензирования удаленных рабочих столов (Use the specified Remote Desktop license servers) — включено — указываем имя сервера;
- Задать режим лицензирования удаленных рабочих столов (Set the Remote licensing mode) — включено — на пользователя.
В соседних ветках настраиваются все параметры подключения клиентов. Далее:
Диспетчер серверов — Локальный сервер — Terminal Services — Диспетчер лицензирования удаленных рабочих столов (Remote Desktop Licensing Manager) — Активировать сервер. Сведения об организации: обязательно нужно заполнить первую страницу, вторую можно оставить пустой.
После активации запускается Мастер установки лицензий:
- Выбираем Enterprise Agreement — Далее (бессмысленный набор цифр ищем в интернете, ищется легко, буквально вторая/третья ссылка) — вводим номер — Далее — выбираем число лицензий и тип На пользователя.
- Заходим Диспетчер серверов — Локальный сервер — Terminal Services — Средство диагностики, проверяем, что нет ошибок.
Создаем файл RDP
На примере 1С предприятия: открываем блокнот и помещаем туда следующую информацию, заменяя имя_сервера на действительное имя сервера:
Сохраняем файл, меняем расширение на rdp, раздаём пользователям.
Реестр
Правим реестр на сервере через блокнот:
Проверяем правильность путей и ключа для иконки, сохраняем с раcширением reg, закидываем в реестр. Проверяем. Если не работает, смотрим ветку TSAppAllowList, у меня это:
Возможные проблемы
Когда недавно делал по своей же инструкции, то получил сообщение, что приложения 1С нет в списке разрешенных, посмотрел на сервере ветку:
— она пустая. При копировании текста с сайта могут неправильно переноситься кавычки, поэтому после копирования все кавычки нужно подправить/проверить в блокноте вручную. И ещё раз проверить пути:
- Путь для иконки IconPathточно будет другой, нужно найти у себя в Windows\Installerправильный путь и заменить мою комбинацию 80897B76-D827-4270-808C-C8FCD379475Dна свою
- Path — для 1С 8.3 будет 1cv8\\common\\1cestart.exe,для 1С 8.2 1cv82\\common\\1cestart.exe
- ShortPath— тоже самое
Подключение через интернет
В файлике rdp вместо имя_сервера, можно использовать IP-адрес (или даже IP-адрес с портом через двоеточие). Это позволяет подключать клиентов через интернет и NAT:
- Пробросить на роутере рандомный внешний порт на внутренний 3389 сервера;
- Вбить в файлик rdp внешний реальник офиса с портом.
Конструкцию с RD Gateway считаю излишней, тем более если делается с пробросом 443 порта на внутренний ресурс, тем более что RD Gateway требует установки роли Web Server, то есть потребляет ресурсы — чем проще, тем надежнее. После настройки роли RDP и проверки работоспособности смело можно удалить даже фичи для администрирования RDP — они больше не нужны.
Клиенты
Клиенты MAC
Добавляем клиентов MAC OS X:
- Обновляем встроенный в MAC OS X RDP-клиент от MS на последнюю версию;
- Отключаем проверку подлинности.
Если режим RemoteApp не нужен, то на этом всё. Если нужен — берём файл rdp, созданный по описанию выше для Windows, меняем имя_сервера на IP-адрес, закидываем на мак и всё работает.
Клиенты Windows XP
Добавляем клиентов Windows XP:
- SP3 должен быть установлен;
- Включаем проверку подлинности на уровне сети (NLA). Тут обновляем RDP-клиент, потом включаем NLA. Сначала КB969084, ребут, потом FixIt. Скачать можно с моего Гугл-драйва.
Клиенты Android
Наверное последнее, что нужно сказать по этой теме — для Андроида тоже есть RD Client от MS — функционирует он штатно и нормально. Приложение бесплатное, загружается через Play Market. Как и для Mac’а файл rdp, закинутый на Андроид, запустится с помощью этого приложения — но логин и пароль при этом сохранить невозможно, а нужно вводить каждый раз. Связана такая ситуация, с тем, что в новых версиях RDP учетные данные не сохраняются в самом файле rdp, а хранятся в отдельной базе данных. На компьютере эти данные можно посмотреть в Панель управления\Учетные записи пользователей\Диспетчер учетных данных, либо Выполнить — control userpasswords2, что тоже самое. Где искать в Андроиде? Не знаю, да и не очень интересно, так как remoteapp для телефонов и планшетов больше блажь, чем реальная потребность. Обычная RDP-сессия работает? — Работает. Этого достаточно.
Три способа повысить защиту RDP
- Уровень безопасности SSL;
- Уровень шифрования FIPS-совместимый;
- Подключения принимаются только от клиентов с NLA.
Траблшутинг
Залипания
Если возникают на 1 клиентском компьютере, нужно проверить сам компьютер и такие вещи как драйвера на видеокарту, количество свободных ресурсов, потому как залипание может происходить в моменты, когда жесткий диск свопит изо всех сил и даже мышку. Была курьёзная ситуация (несвязанная с данной проблемой), что при нажатии на кнопку мыши щелчок есть, а фактически нажатия нет, поменяли мышку, всё работает.
Если же залипание массовое и с ресурсами сервера всё в порядке, то проблема 90% сетевая. В 2012 R2 для RDP используется как TCP, так и UDP или только TCP. Нужно проверить, что UDP используется. Статья в помощь. Сайт MS. Таже нужно просмотреть политики.
Область применения
Статейка написана давно, более чем 2 года назад, тогда Windows Server 2012 R2 был ещё относительно свежим и хотелось разобраться как же это всё настроить. Был накидан рабочий черновик – вот эта заметка и ни на какую полноту она не претендует. С тех пор поднято несколько серверов в данном режиме, которые работают так по сей день. Тема исчерпана, но вопросы идут и некоторые люди не понимают нишу использования remoteapp, зачем такой режим, почему именно для 1C, какой тут смысл и в чём заключается выигрыш. Вещи-то очевидные, но раз так, то надо сказать пару слов.
Remoteapp не панацея
А именно есть очень толстые минусы как RDP в целом, так и remoteapp в частности:
- Каждый раз когда пользователь хочет сохранить файл, ему открываются диски удалённой машины. Есть варианты, но это неудобно в работе;
- Далеко не все пользователи продвинутые и с компьютером «на ты», многие очень тяжело воспринимают remoteapp, они путаются где какой диск, сложно и затратно по времени растолковать им данный режим работы;
- Для запуска remoteapp нужно время, так как на сервере должен загрузиться пользовательский сеанс;
- При закрытии приложения сеанс отключается и нужно ждать его завершения (минимум 1 минута), если в сеансе открыт конкретный фал, он будет блокирован на запись. Можно разрешить множественные сеансы для пользователя или можно убрать ограничения для отключенного сеанса, тогда возникают другие проблемы;
- В зависимости от версии Windows Server могут возникать различные глюки, связанные с временными задержками (не помню точно в какой версии сервера, но загружается сеанс и его нельзя завершить
30 секунд сразу после загрузки, было такое);
Может что-то даже упустил из виду, хотя и так немало. Поэтому использовать remoteapp нужно тогда, когда это действительно необходимо.
Примечание. Очень хороший пример когда не нужно использовать remoteapp — Word и Exel.
Зачем 1С Remoteapp?
Схема применения 1С может варьироваться в очень широких пределах от локальной однопользовательской базы до сотен пользователей и кластера серверов. Возьмем классический вариант: многопользовательская база на 5-15 пользователей. Работа с такой базой, даже на 5 человек, генерирует большой сетевой трафик и сама база требует серьёзной вычислительной мощности. Вот отсюда и два варианта применения remoteapp для 1С:
- Если чистый файловый вариант базы и как раз 5-6 человек, потому как больше такая схема не потянет, тогда весь обсчёт на клиентах – для того чтобы перенести обсчёт с клиентов на сервер. Это позволяет увеличить число клиентов и одновременно значительно повысить скорость работы без внедрения СУБД;
- Удаленная работа через медленные либо лимитные каналы связи как в файловом варианте, так и в клиент-серверном – передавать изображение намного выгоднее по объёму трафика, чем трафик 1С.
Remoteapp vs классический RDP
Обычно в случае 1С — база на сервере, а вот документы для работы — на локальном компьютере. Всё время сворачивать и разворачивать окно RDP неудобно, remoteapp тут гораздо комфортнее.
Исключения
- Если все клиентские машины достаточно мощные (Core i3 и выше), баз мало (1-2-3), базы файловые, сеть локальная гигабитная, пользователей не больше, скажем, 5 и работа с базой не слишком интенсивная — тут даже сервер не нужен, подойдёт любой компьютер с гигабитной сетевой картой и быстрым диском. Важный момент, что все машины мощные, так как 1 слабый компьютер станет узким местом и скорость работы будет равняться по нему;
- При удалённой работе есть альтернатива remoteapp — веб публикация 1С. У каждого из этих решений свои плюсы и минусы.
Почему 2012 R2
C чистой 2012 без R2 встретиться в работе не удалось и ничего про неё не скажу, но если сравнивать 2008 R2 и 2012 R2, то последняя имеет значительно перелопаченный код, как следствие быстрее работает на том же самом железе, а сетевой стек до 30% быстрее. Поддержка самого железа, особенно различных RAID-контроллеров, тоже лучше и если на 2008 R2 драйвер при установке нужно подпихивать, то в 2012 R2 он скорее всего уже встроен — сталкивался несколько раз. Поддержка RDP 8.1.
Windows Server 2016 уже тоже в продакшене, имеет ряд преимуществ над 2012 R2, но для новых плюшек, таких как вложенная виртуализация, требует современного железа. По этой причине 2012 R2 более универсален.