RemoteApp - режим служб удалённых рабочих столов Windows Server, в котором пользователь получает не весь рабочий стол сервера, а окно одной программы. 1С, CRM или складская программа запускается с ярлыка на обычном компьютере, выглядит как локальная, а работает на терминальном сервере. Для офиса это способ дать людям нужные приложения, не показывая им сервер целиком.
Ниже - чем RemoteApp отличается от полного рабочего стола, что нужно на сервере, как опубликовать 1С командой PowerShell и где обычно возникают проблемы.
Технически это одна и та же служба и один и тот же протокол RDP. Разница в том, что видит пользователь и что вы ему разрешаете:
| RemoteApp | Полный рабочий стол | |
|---|---|---|
| Что видит пользователь | Окно программы на своём рабочем столе | Отдельный рабочий стол сервера |
| Подходит для | 1-3 рабочих программ: 1С, CRM, учётная система | Сотрудников, которые работают на сервере целый день с десятком программ |
| Риск лишних действий | Ниже: проводника и меню «Пуск» сервера нет | Выше: доступно всё, что не закрыто политиками |
| Привычность | Ярлык как у обычной программы | Надо переключаться между двумя рабочими столами |
| Лицензии | RDS CAL на пользователя или устройство | Те же RDS CAL |
Простое правило: если человеку на сервере нужна одна-две программы, давайте RemoteApp. Если он открывает файлы, браузер, почту и всё это должно жить на сервере, удобнее полный рабочий стол. Подробнее о том, как вообще устроен терминальный сервер, мы писали в статье что такое терминальный сервер.
Штатный путь - развёртывание служб удалённых рабочих столов (RDS) через диспетчер серверов. В нём три роли, и в небольшом офисе все три обычно ставят на один сервер:
Это развёртывание рассчитано на домен Active Directory: серверы ролей должны быть его членами. Публикуемые программы собирают в коллекцию сеансов (Session Collection), и для каждой коллекции задают, каким группам пользователей она доступна.
Сверху нужен сервер лицензирования RDS и клиентские лицензии RDS CAL - на пользователя или на устройство. Microsoft даёт 120 дней льготного периода, после которых без лицензий подключения перестают проходить. Сколько и каких лицензий потребуется, включая обычные CAL Windows Server, мы разбирали в статье про лицензирование Windows Server и RDS CAL.
Без домена RemoteApp тоже запускают: программу вносят в разрешённый список через ключи реестра TSAppAllowList и раздают пользователям вручную подготовленные .rdp-файлы. Это работает, но без посредника, веб-доступа и централизованного управления. Для офиса больше чем на десяток человек проще и надёжнее поднять домен.
Порядок для типового случая: один сервер, на котором уже развёрнуты роли RDS и установлена клиентская часть 1С.
1cestart.exe: он сам выберет нужную версию платформы после обновления.Публикация из PowerShell выглядит так (имена коллекции, посредника и путь - пример):
New-RDRemoteApp -CollectionName "Бухгалтерия" -DisplayName "1С:Предприятие" -FilePath "C:\Program Files\1cv8\common\1cestart.exe" -ConnectionBroker "ts01.office.local"
Get-RDRemoteApp -CollectionName "Бухгалтерия"
Ярлыки до пользователей доходят тремя способами. Через браузер: страница https://имя-сервера/RDWeb со списком программ. Через подписку: на компьютере с Windows в панели управления есть «Подключения к удалённым приложениям и рабочим столам», куда вводят адрес ленты https://имя-сервера/RDWeb/Feed/webfeed.aspx, и программы появляются в меню «Пуск». Или готовым .rdp-файлом, в котором включён режим удалённого приложения (remoteapplicationmode:i:1). С macOS, iPhone и Android подключаются через приложение Windows App, добавив в него тот же адрес ленты. Сам RDP-доступ к серверу держите за VPN, без проброса порта в интернет, - об этом в статье про настройку RDP-сервера.
С 1С есть особенность лицензирования: клиентские лицензии 1С расходуются по сеансам пользователей на сервере, а программная лицензия привязывается к параметрам самого сервера. После замены железа или переноса сервера в виртуальную машину её придётся активировать заново.
RemoteApp не меняет арифметику терминального сервера: каждое окно программы - это обычный пользовательский сеанс со своей памятью и процессорным временем. Сколько людей выдержит хост, зависит от программ и характера работы. Для 1С это заметно меньше, чем для офисных приложений, и считать надо под свою нагрузку. Как это делается по шагам, разобрано в статье про выбор терминального сервера, а отдельно для 1С - в материале о конфигурации терминального сервера для 1С.
Когда одного узла перестаёт хватать, в коллекцию добавляют второй узел сеансов, и посредник распределяет пользователей между ними. Опубликованные программы на всех узлах коллекции должны быть установлены одинаково, по одним и тем же путям, иначе часть пользователей получит ошибку при запуске. Как собрать такую ферму и настроить балансировку, описано в статье про сервер удалённых рабочих столов.
Не печатает или печатает не туда. Принтеры пользователя перенаправляются в сеанс. Если драйвера на сервере нет, выручает универсальный драйвер Easy Print. Проверьте, что перенаправление принтеров не запрещено в свойствах коллекции.
Не видно локальных дисков и флешек. Перенаправление дисков и буфера обмена включается в свойствах коллекции. Открывайте только то, что нужно для работы: каждый перенаправленный диск - лишний путь для данных наружу.
Сеанс не закрывается после выхода из программы. Если программа оставляет фоновые процессы, сеанс висит в отключённом состоянии и держит лицензию и память. Лечится ограничениями времени для отключённых сеансов в свойствах коллекции.
Окна прячутся или открываются за пределами экрана. Чаще всего это несколько мониторов с разным разрешением. Помогает строка use multimon:i:0 в .rdp-файле: программа будет открываться только на основном мониторе.
Файлы не открываются в опубликованной программе двойным щелчком. Связи типов файлов задаются в свойствах опубликованной программы и работают только у пользователей, подписанных на ленту. При запуске готового .rdp-файла их нет.
Отдельная тема - профили пользователей на сервере: как они хранятся и почему разрастаются, разобрано в статье про управление профилями на терминальном сервере.
Аналог RemoteApp есть и вне Windows. Российский Termidesk (группа «Астра») в редакции Termidesk Terminal публикует рабочие столы и отдельные приложения с терминального сервера STAL на Astra Linux Special Edition. Логика та же: программа работает на сервере, пользователь видит её окно. Переносить на неё 1С, рассчитанную на Windows-клиент, без тестирования не стоит: проверьте заранее, как ваша конфигурация работает в Linux-клиенте 1С.
Для штатного развёртывания с посредником и веб-доступом - да. Без домена программу можно опубликовать через реестр и .rdp-файлы, но централизованного управления не будет.
Ничем на уровне протокола. При обычном подключении пользователь видит весь рабочий стол сервера, при RemoteApp - только окно опубликованной программы.
Отдельных - нет. Нужны те же RDS CAL, что и для удалённого рабочего стола, плюс обычные CAL Windows Server и лицензии самих программ, например 1С.
Технически через реестр можно, но настольная Windows пускает только один удалённый сеанс одновременно, а обходы этого ограничения нарушают лицензию. Для нескольких пользователей нужен Windows Server.
По теме: терминальный доступ простыми словами, защита данных на терминальном сервере.
Переводите 1С и рабочие программы на терминальный сервер?
Подберём сервер под число пользователей и ваши программы, посчитаем память и диски с запасом на рост, соберём и протестируем перед отгрузкой. Если нужно купить сервер RDP под RemoteApp, посмотрите каталог или напишите нам: +7 (800) 551-80-12, info@ittelo.ru. Серверами мы занимаемся больше 11 лет и за это время накопили серьёзную экспертизу. Даём гарантию до 5 лет, берём сервер на постпродажное обслуживание и не пропадаем после отгрузки.