Не все знают, что в дополнение к службе удаленных рабочих столов, в Windows Server 2008 R2 есть очень удобная служба удаленных приложений RemoteApp. Суть RemoteApp в том, что к любым приложениям, установленным на данном сервере, можно получить удаленный доступ с любого компьютера подключенного к сети. В этом случае, выполняться программа будет на сервере, но её окно будет прорисовываться так, если бы пользователь запустил программу с локального компьютера. Возможно сворачивать и разворачивать окно программы запущенной через RemoteApp, изменять его размеры и запускать сразу несколько программ вместе со своими локальными приложениями. Это очень удобный механизм, который может существенно облегчить администрирование некоторых программ и сократить расходы на их покупку.
Ниже я расскажу как настроить Удаленные приложения RemoteApp в Windows Server 2008 R2 на примере программы 1с:Предприятие 7.7.
0. Оглавление
1. Что понадобится
- Компьютер с Windows Server 2008 R2 (об установке можно прочитать здесь)
- Запущенный сервер терминалов на данном компьютере (об установке сервера терминалов читайте здесь)
- Также, на этом компьютере должно быть установлено и настроено приложение, которое мы будем добавлять в RemoteApp, в моем случае это 1С:Предприятие 7.7 (об особенностях установки 1С:Предприятие 7.7 я писал здесь)
2. Создание RDP-файла или установщика для удаленной программы
Запускаем «Диспетчер удаленных приложений RemoteApp» («Пуск» — «Администрирование» — «Службы удаленных рабочих столов» ) и в меню «Действия» слева нажимаем на «Добавить удаленные приложения RemoteApp» .
В запустившемся мастере нажимаем «Далее» , выбираем необходимое приложение, затем снова «Далее» и «Готово» .
После чего данная программа появится в списке удаленных приложений RemoteApp. Выделив его в таблице нажимаем на «Создать RDP-файл» в меню слева.
Запустится «Мастер удаленных приложений RemoteApp» , нажимаем «Далее» и попадаем на окно «Задание параметров пакета» . Здесь можно выбрать каталог, куда сохранится RDP-файл, задать параметры шлюза удаленных рабочих столов, а также параметры сертификата для защищенных соединений. Но главное, можно поменять имя сервера и порт. Изначально выставлены имя компьютера и порт RDP по умолчанию. С такими настройками приложение будет доступно только из локальной сети. Если необходимо, чтобы программа запускалась и со всех компьютеров, подключенных к сети Интернет, то имя сервера нужно заменить на внешний IP-адрес, а также, по необходимости, изменить порт, который проброшен на маршрутизаторе для данного сервера, как показано на скриншоте ниже.
Порт также следует поменять, если вы меняли порт по умолчанию для сервера терминалов (о том как это сделать, можно прочитать здесь). Завершаем работу мастера нажав «Далее» и «Готово» , после чего в указанном каталоге найдем файл с расширением rdp.
Аналогичным образом можно создать msi-установщик, нажав на «Создать пакет установщика Windows» . При запуске получившегося таким образом установщика, он будет создавать RDP-ярлык на рабочем столе и в меню пуск с иконкой выбранного приложения.
Теперь, если запустить получившийся RDP-файл с другого компьютера в сети, то появится окно ввода логина/пароля для входа на сервер.
После ввода данных увидим окно 1С:Предприятие так, как будто мы запустили его с локальной машины.
3. Настройка пользователей
Если приложение будут запускать несколько пользователей с одинаковыми настройками, то необязательно добавлять каждого на сервер. Достаточно создать только одного пользователя, скажем User_1C (о том как создать пользователя можно прочитать здесь), настроить все параметры (список баз, принтеры пр.) для этого пользователя и разрешить множественные сеансы.
Для того чтобы разрешить множественные сеансы заходим в «Пуск» — «Администрирование» — «Службы удаленных рабочих столов» — «Конфигурация узла сеансов удаленных рабочих столов» кликаем 2 раза по «Ограничить пользователя единственным сеансом» , в окне свойств снимаем галочку «Ограничить всех пользователей одиночными сеансами» .
Значение должно поменяться на «Нет» .
Кроме этого, надо знать еще об одном нюансе. Дело в том, что при закрытии приложения, запущенного через RemoteApp, пользователь не выгружается автоматически, а отключенная учетная запись так и продолжает «висеть» на сервере. Чтобы изменить это, в свойствах пользователей, которые будут запускать приложения через RemoteApp, на вкладке «Сеансы» устанавливаем «Завершение отключенного сеанса» через 1 минуту.
На этом настройка закончена. Мы выполнили ее таким образом, что несколько человек одновременно могут работать с программой 1С:Предприятие 7.7 под одной учетной записью (для удобства работы можно создать несколько учетных записей, например, User_1c_Buh, User_1C_Operator, User_1C_Sklad и т. д. или же отдельную учетную запись для каждого пользователя).
Добрый день.
С нуля установлена win2008 r2 standart.Поднят RDP, созданы установщики удалённых приложений 1с77, 1с82, Wold и Excel. Всё изумительно работает на 20 клиентских машинах.
Также на этом серваке расшарена папка obmen с которой все пользователи работают , содержимое этой папки в основном текстовые и табличные файлы, созданные как в OFFICE так и в OPENOFICE. Так вот, началась проявлятся такая проблема: перестали открываться табличные файлы с ошибкой «Удалённый компьютер не настроен на открытие файлов данных этого типа». Причем не открываются файлы с расширением xls и xlsx, а odt открывается без проблем. Если открывать файлы из под excel то всё открывается.
Делал сопоставление как в терминале под админом так и на клиентских машинах, не помогает. Изначально всё работало.
Помогите решить проблему.
Добрый день. По поводу множественных и одинарных сеансов, к сожалению, не получается,т.к. эти параметры общие для всех подключений и изменяются для всех, есть ли другие варианты?
Здравствуйте!
Прошу совета по возникшей проблеме: часть пользователей работает в базе данных 1С через RemoteApp.
По просьбе разработчиков, программисты написали модуль автоматического выброса пользователей из базы посредством ввода новой константы и изменения ее значения. Все бы ничего, те пользоватли, которые цепляются к базе локально, выбрасываются на «ура», а вот те, которые работают в базе через RemoteApp, почему-то напрочь виснут. причем, настолько, что иногда сам сеанс RemoteApp зависает настолько, что помогает только перезагрузка.
Возможно, тут нужны какие-то настройки самого RemoteApp-соединения? Ведь, получается, что он реагирует на закрытие только тогда, когда инициатива закрытия исходит от самого пользователя (когда он просто закрывает сеанс крестиком), а если инициатива закрытия приложения идет от самого приложения, он «не понимает» чего от него требуют и благополучно «вешается».
Кто-нибудь сталкивался с подобной проблемой?
Заранее спасибо если кто ответит.
Здравствуйте.
Можно настроить время завершения каждого сеанса RemoteApp по простою, для всех сеансов или для каждого конкретного пользователя.
Относительно завершения работы в 1С, то, скорее всего, разработчики «рубят» сеансы на кластере 1С, тогда так сам процесс 1cv8.exe продолжает «висеть» в сеансе. Тут уже надо разбираться детально.
В связи с изменением в Windows Server 2012 и выше работы с RemoteApp не планируете написать такую же полезную статью о запуске 1С 7.x/8.x как RemoteApp?
Нет, не планируем.