REMOTEAPP В 2012 R2 БЕЗ ДОМЕНА

Начну с главного: всё нормально и быстро настраивается. Опубликовать 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С предприятия: открываем блокнот и помещаем туда следующую информацию, заменяя имя_сервера на действительное имя сервера:
redirectclipboard:i:1
redirectposdevices:i:0
redirectprinters:i:1
redirectcomports:i:1
redirectsmartcards:i:1
devicestoredirect:s:*
drivestoredirect:s:*
redirectdrives:i:1
session bpp:i:32 prompt for credentials on client:i:1
span monitors:i:1
use multimon:i:1
remoteapplicationmode:i:1
server port:i:3389
allow font smoothing:i:1
promptcredentialonce:i:1
authentication level:i:2
gatewayusagemethod:i:2
gatewayprofileusagemethod:i:0
gatewaycredentialssource:i:0
full address:s:имя_сервера
alternate shell:s:||1cestart
remoteapplicationprogram:s:||1cestart
gatewayhostname:s:
remoteapplicationname:s:1C Предприятие
remoteapplicationcmdline:s:
Сохраняем файл, меняем расширение на rdp, раздаём пользователям.
Реестр
Правим реестр на сервере через блокнот:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\1cestart] "CommandLineSetting"=dword:00000000 "RequiredCommandLine"="" "IconIndex"=dword:00000000 "IconPath"="%SYSTEMDRIVE%\\Windows\\Installer\\{80897B76-D827-4270-808C-C8FCD379475D}\\ShortCut_ThinStarter.exe" "Name"="1C Предприятие" "Path"="C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe" "ShortPath"="C:\\PROGRA~2\\1cv8\\common\\1cestart.exe" "ShowInTSWA"=dword:00000001 "SecurityDescriptor"=""
Проверяем правильность путей и ключа для иконки, сохраняем с раcширением reg, закидываем в реестр. Проверяем. Если не работает, смотрим ветку TSAppAllowList, у меня это:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList] "LicenseServers"=hex(7):00,00 "CertificateIssuedBy"="" "LicensingType"=dword:00000005 "fHasCertificate"=dword:00000000 "CertificateExpiresOn"="0" "CentralLicensing"=dword:00000000 "fDisabledAllowList"=dword:00000000 "CertificateIssuedTo"="" "CustomRDPSettings"="authentication level:i:2"
Возможные проблемы
Когда недавно делал по своей же инструкции, то получил сообщение, что приложения 1С нет в списке разрешенных, посмотрел на сервере ветку:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\1cestart
- она пустая. При копировании текста с сайта могут неправильно переноситься кавычки, поэтому после копирования все кавычки нужно подправить/проверить в блокноте вручную. И ещё раз проверить пути:
Путь для иконки 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 - они больше не нужны.