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 (или Remote Desktop Services для 2016).
Настройка параметров 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
— Далее (бессмысленный набор цифр ищем в интернете, ищется легко, буквально вторая/третья ссылка) — вводим номер — Далее — выбираем число лицензий и тип на пользователя. ЗаходимДиспетчер серверов - Все серверы - правой кнопкой на сервере - Средство диагностики лицензирования удалённых рабочих столов
, проверяем, что нет ошибок.
Создаем файл RDP
На примере 1С предприятия: открываем блокнот и помещаем туда следующую информацию, заменяя имя_сервера на действительное имя сервера или IP:
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_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplications1cestart] "CommandLineSetting"=dword:00000000 "RequiredCommandLine"="" "Name"="1C Предприятие" "Path"="C:Program Files (x86)1cv8common1cestart.exe" "ShortPath"="C:PROGRA~21cv8common1cestart.exe" "ShowInTSWA"=dword:00000001 "SecurityDescriptor"=""
Проверяем правильность путей, сохраняем с раcширением .reg
, закидываем в реестр. Проверяем. Если не работает, смотрим ветку 1cestart
. Значения из reg-файла должны перенестись. И на всякий пожарный ветку TSAppAllowList
там же, у меня это:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowList] "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С нет в списке разрешенных.
Или вот такое ещё может быть:
Посмотрел на сервере ветку 1cestart
:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplications1cestart
Она пустая. При копировании текста с сайта могут неправильно переноситься кавычки, ещё что-то. Поэтому нужно подправить/проверить вручную.
Path
— для 1С 8.3 будет1cv8common1cestart.exe
, для 1С 8.21cv82common1cestart.exe
ShortPath
то же самое.
Подключение через интернет
В файлике rdp вместо имя_сервера, можно использовать IP-адрес (или даже IP-адрес с портом через двоеточие, или же указать порт в соответствующей строке). Это позволяет подключать клиентов через интернет и NAT:
- Пробросить на роутере рандомный внешний порт на внутренний 3389 сервера;
- Вбить в файлик внешний реальник офиса с портом.
Конструкцию с 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 не панацея
В общем и целом remoteapp
решение нищебродское, если уж по честному. Плюсом есть очень толстые минусы как RDP, так и remoteapp
:
- Каждый раз когда пользователь хочет сохранить файл, ему открываются диски удалённой машины. Есть варианты, но это неудобно в работе;
- Далеко не все пользователи продвинутые и с компьютером «на ты», многие очень тяжело воспринимают
remoteapp
, они путаются где какой диск, сложно и затратно по времени растолковать им данный режим работы; - Для запуска
remoteapp
нужно время, так как на сервере должен загрузиться пользовательский сеанс; - При закрытии приложения сеанс отключается и нужно ждать его завершения (минимум 1 минута), если в сеансе открыт конкретный фал, он будет блокирован на запись. Можно разрешить множественные сеансы для пользователя или можно убрать ограничения для отключенного сеанса, тогда возникают другие проблемы;
- В зависимости от версии Windows Server могут возникать различные глюки, связанные с временными задержками (не помню точно в какой версии сервера, но загружается сеанс и его нельзя завершить ~30 секунд сразу после загрузки, было такое);
- Каждое запущенное приложение — отдельный сеанс и отдельная нагрузка на сервер;
- Сам сервер и лицензии для RDP стоят приличных денег, этот вопрос всплывёт рано или поздно.
Может что-то даже упустил из виду, хотя и так немало. Поэтому использовать remoteapp
нужно тогда, когда это действительно необходимо.
Примечание. Очень хороший пример когда не нужно использовать remoteapp
— Word и Excel.
Зачем 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С. У каждого из этих решений свои плюсы и минусы; - Используется СУБД и тонкие/веб клиенты. Тогда ничего не надо, стандартные корпоративные каналы достаточно широкие сейчас чтобы переварить такой трафик. Открыть для 1С
TCP 1540, 1541, 1560-1591
на FW и вперёд.
Почему 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 более универсален.
Windows 2016
Эта статья получила довольно таки широкое распространение. Чего там говорить, вот да.. И как-то однажды, давно, где-то там на форуме, уже не вспомню каком, читал человек пишет: ставил по этой статье с этого сайта (с моего, отсюда) и на 2016 не работает. Дальше обсуждение на n-страниц. Как всегда. Ну не работает и не работает, мож даже и к лучшему. 🙂 Но тут меня недавно (22.04.2021) спросили конкретно здесь, в комментариях: почему не работает с 2016?
Что делать.. заставляете тряхнуть стариной. Уже не ставил этих серверных виндовс пару лет, 1С ещё дольше. Почти всё подзабыл, так что сильно не ругайте, если что-то не то скажу. Итак, нашёл образ, установил в виртуальную машину VMware, поставил все обновы:
Получилось так:
Дальше стал проверять по тексту. И всё в общем-то то же самое. Один в один. Если есть какие-то изменения, то минимум. Почему же не работает? Не знаю, должно работать. И кроме этого всё должно настроится точно по тексту без каких-либо ошибок.
Какие тут были ещё замечания
Первое. Служба Сервера 1C Предприятие не хотела стартовать от текущего пользователя при установке дистрибутива. Пришлось выбрать Создать нового пользователя и всё успешно запустилось. Второе. Сам дистрибутив 1С 8.3.17.1549 и он чисто x64. То есть ставится в папку C:Program Files
, а не в папку C:Program Files (x86)
. Соответственно в reg-файлике нужно сделать изменения:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplications1cestart] "CommandLineSetting"=dword:00000000 "RequiredCommandLine"="" "Name"="1C Предприятие" "Path"="C:Program Files1cv8common1cestart.exe" "ShortPath"="C:PROGRA~11cv8common1cestart.exe" "ShowInTSWA"=dword:00000001 "SecurityDescriptor"=""
И как уже говорил нужно контролировать что там добавилось в реестр. И добавилось ли вообще. Ветка TSAppAllowList
:
Ветка 1cestart:
В rdp-файлике прописывал не имя сервера, а IP. Потому что мой компьютер не знает какое там имя у виртуальной машины. Прописывать в файл hosts
мне было лень.
Запускаю файлик с домашнего компа и вуа-ля:
Другой дистрибутив
Может образ какой-то не тот? Хорошо, скачиваю оценочный образ с Microsoft.
14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_RU-RU.ISO
Опять мега долго ставлю обновления.
Версия после обновлений та же самая, что логично.
Скачиваю платформу 1С, версия 8.3.17.1549, но уже x86+x64. Сначала ставлю x86. Проверяю, не работает. Ищу где ошибка. При экспорте reg-файла не создаются ключи Path
и ShortPath
. Вообще никак. Добавляю руками (смотри картинку выше). Работает.
Теперь x64. Прям в реестре правлю параметры Path
и ShortPath
. Накатываю дистрибутив прям поверх x86. Проверяю, работает.
Так что в случае проблем припоминай не было ли каких-то варнингов, ошибок, проверяй всё по второму кругу. Должно работать.
Привет, в Windows Server 2012, Microsoft сделали ограничение на использование терминального сервера, если он не введен в домен Active Directory. В частности, я столкнулся с тем, что из консоли управления сервером нельзя настроить RemoteAPP. Но к счастью, приложения можно добавить в ручную, ниже я покажу как это можно сделать.
Само собой, для работы RemoteApp у вас должен быть установлен терминальный сервер, если кто не в курсе, если сервер не в домене, устанавливается он через добавление ролей, а не через установку служб удаленных рабочих столов. Выбираются службы удаленных рабочих столов, в них выбираются лицензирование удаленных рабочих столов и узел сеансов удаленных рабочих столов.
Я покажу как сделать задуманное, на примере 1С, думаю понятно, что по этой схеме можно добавить любое приложение RemoteApp.
Для упрощения процесса, я создал архив с готовыми файлами rdp и reg, скачать можно отсюда.
Ниже описание этих файлов.
Создадим, или откроем из архива .rdp файл подключения.
Содержимое его, должно иметь такой вид:
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
full address:s:192.168.1.112
alternate shell:s:||1cestart
remoteapplicationprogram:s:||1cestart
remoteapplicationname:s:1C Предприятие
allow font smoothing:i:1
promptcredentialonce:i:1
authentication level:i:2
gatewayusagemethod:i:2
gatewayprofileusagemethod:i:0
gatewaycredentialssource:i:0
gatewayhostname:s:
remoteapplicationcmdline:s:
screen mode id:i:2
winposstr:s:0,3,0,0,800,600
compression:i:1
keyboardhook:i:2
audiocapturemode:i:0
videoplaybackmode:i:1
connection type:i:7
networkautodetect:i:1
bandwidthautodetect:i:1
displayconnectionbar:i:1
enableworkspacereconnect:i:0
disable wallpaper:i:0
allow desktop composition:i:0
disable full window drag:i:1
disable menu anims:i:1
disable themes:i:0
disable cursor setting:i:0
bitmapcachepersistenable:i:1
audiomode:i:0
autoreconnection enabled:i:1
prompt for credentials:i:0
negotiate security layer:i:1
remoteapplicationicon:s:
shell working directory:s:
gatewaybrokeringtype:i:0
use redirection server name:i:0
rdgiskdcproxy:i:0
kdcproxyname:s:
Вам нужно изменить строчки, на ваши порт и адрес:
server port:i:3389
full address:s:192.168.1.112
А так же, в случае, если добавляете не 1С, то эти то же:
alternate shell:s:||1cestart
remoteapplicationprogram:s:||1cestart
remoteapplicationname:s:1C Предприятие
Сохраните файл, и попробуйте подключиться, если файл создан правильно, то должна будет выскочить ошибка, что приложение RemoteApp отсутсвует в списке разрешенных программ.
Дальше добавим наше приложение в список разрешенных, для этого нужно будет отредактировать реестр. Я сделал дамп ветки которую нужно добавить для 1С 8.2. В архиве, файл называется 1cestart.reg
Его содержимое:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplications1cestart]
«RequiredCommandLine»=»»
«Name»=»1C Предприятие»
«SecurityDescriptor»=»»
«CommandLineSettings»=dword:00000000
«IconIndex»=dword:00000000
«Path»=»C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe»
«ShortPath»=»C:\\PROGRA~2\\1cv8\\common\\1cestart.exe»
«ShowInTSWA»=dword:00000001
«IconPath»=»%SystemRoot%\Installer\{D4895455-7B12-4E0B-B5F0-EFF6B9C3F93E}\ShortCut_EnterprSt_41216A7DC6764F558CBAC68BC28BD550.exe»
Если вы будете заносить эти параметры вручную, то нужно в путях изменить \\ на \.
Как не трудно догадаться, в нем нужно изменить пути до вашего приложения, в следующих строках:
«IconPath»=»%SystemRoot%\Installer\{D4895455-7B12-4E0B-B5F0-EFF6B9C3F93E}\ShortCut_EnterprSt_41216A7DC6764F558CBAC68BC28BD550.exe»
«Path»=»C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe»
«ShortPath»=»C:\\PROGRA~2\\1cv8\\common\\1cestart.exe»
И его имя в строке:
«Name»=»1C Предприятие»
А также ветку реестра, то есть если вы пробрасываете, например, калькулятор, то и ветка должна быть, не Applications1cestart, а Applicationscalc, и не забудьте, проверить, чтобы параметры названия приложения, в файле .rdp, соответствовали названию этой ветки.
Попробуйте подключиться снова, у меня RemoteApp после вышеописанных действий заработал.
Если же у вас что не заработало, проверьте ветку реестра, создалась ли она вообще, и правильные ли в ней пути прописаны, если в ней все верно на 100%, то попробуйте запустить файл termital.reg из архива.
Его содержимое, если кто захочет добавлять руками:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowList]
«LicenseServers»=hex(7):00,00
«CertificateIssuedBy»=»»
«LicensingType»=dword:00000005
«fHasCertificate»=dword:00000000
«CertificateExpiresOn»=»»
«CentralLicensing»=dword:00000000
«fDisabledAllowList»=dword:00000000
«CertificateIssuedTo»=»»
«CustomRDPSettings»=»authentication level:i:2»
Начну с главного: всё нормально и быстро настраивается. Опубликовать 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_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplications1cestart] "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_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowList] "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_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplications1cestart
– она пустая. При копировании текста с сайта могут неправильно переноситься кавычки, поэтому после копирования все кавычки нужно подправить/проверить в блокноте вручную. И ещё раз проверить пути:
- Путь для иконки IconPath точно будет другой, нужно найти у себя в WindowsInstaller правильный путь и заменить мою комбинацию 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 – они больше не нужны.
Также по теме:
- Развёртка Remote Desktop Service на Windows Server 2012R2
Публикация и настройка удаленных приложений RemoteApp
Оказалось что в 2012 сервере Майкрософт не очень хорошо поступил с ремот апп: сплошные мучения с веб-доступом, браузер зачем-то запускать. Я не стал разбираться и решил найти простое решение. Оказалось есть специальная софтинка — https://sites.google.com/site/kimknight/remoteapptool. Подробности на http://stealthpuppy.com/remoteapp-for-windows-xp-and-windows-vista-the-missing-pieces/. Но по сути софтина делает ярлык и добавляет новую ветку в реестре. Вот подробности из блога технаря:
Возможность опубликовывать приложения с помощью remoteapp в среде Windows server 2012 без контроллера домена отсутствует.
Да и ограничение ставить терминальный сервер и контроллер домена дает о себе знать.
На форумах технет найдено решение, обходящее эту проблему:
Пример опубликования WinRar.
Создаем файл c расширением rdp со следующим содержимым:
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:TS01
alternate shell:s:||C:Program Files (x86)WinRARWinRAR.exe
remoteapplicationprogram:s:||WinRAR
gatewayhostname:s:
remoteapplicationname:s:WinRAR
remoteapplicationcmdline:s:
Так же на сервере правим реестр
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplicationsWinRAR]
"CommandLineSetting"=dword:00000000
"RequiredCommandLine"=""
"IconIndex"=dword:00000000
"IconPath"="%SYSTEMDRIVE%\Program Files (x86)\WinRAR\WinRAR.exe"
"Path"="C:\Program Files (x86)\WinRAR\WinRAR.exe"
"VPath"="%SYSTEMDRIVE%\Program Files (x86)\WinRAR\WinRAR.exe"
"ShowInTSWA"=dword:00000001
"Name"="WinRAR"
"SecurityDescriptor"=""
Расшифровка ключей в эрдипи файлике тут — http://technet.microsoft.com/en-us/library/ff393699%28v=ws.10%29.aspx
Join @AdmNtsRu on Telegram
Смотрите также:
Publishing RemoteApps in Windows Server 2012
This Wiki is about publishing RemoteApps
in Windows Server 2012. More info on the Distribution of those Remote Apps and desktops can be found in this wiki:
http://social.technet.microsoft.com/wiki/contents/articles/14488.distribution-of-remote-apps-and-desktops-in-windows-server-2012.aspx
The RD WebAccess role in Windows Server 2012 can be deployed using one of the new Scenario Based Deployments (Quick or Standard deployment) or can be deploying using the traditional Role Based Deployment. After doing either of these deployments Remote Apps
can be published using the Server Manager Console.
We open up the Server Manager and select Remote Desktop Services from the left pane. Assuming that we already created the Session Collection to host our RemoteApps we select
that Session Collection. Here we have the ability to centrally publish and unpublish RemoteApps. Note that a Session Collection can be two different types. When no Remote Apps are published, the Session Collection is of type «Remote Desktop» which basically
means that only full desktop is published. As soon as you have successfully published your first Remote App, the Session Collection is changes to type «Remote App Programs» and the full desktop is no longer published, as a mix in one Session
Collection is not supported.
We now either select “Publish RemoteApp programs to this collection” or select “Publish RemoteApp programs” from the TASKS dropdown menu.A wizard will be launched that will scan the RD Session Host Servers involved in this Session Collection to retrieve a list of installed applications that you might want
to publish. We can select one of these applications (or multiple) or we can click “Add another program” which will launch a second dialog in which we are able to browse the Session Host in order to select an application of choice.
After selecting one or more applications, we click Next and confirm the chosen applications to be published to the RD WebAccess server(s).After the wizard is finished, we have the RemoteApps available in RD WebAccess. By default, all RemoteApps will be made available in the root of the RD WebAccess page. To
create hierarchy and folders please follow Adding
folders in RD WebAccess in Windows Server 2012.If desired we can edit the properties of the RemoteApps from the server manager by right clicking and choosing edit.Here we can change the name, icon and desired folder.
In the parameters tab we can set the desired command line parameters we wish to use.
In the user assignment screen, we can certain users or groups that we would like to allow explicit access to certain applications. By doing so, the application in question
will only be available to users specified here (either by user or group membership).
In the File type and associations screen we are able to construct a certain association to a RemoteApp Program. Please note however, that this association only applies to
Remote App and Connections and not to user connecting through the RD WebAccess page or a separate .RDP file.
Comments
-
14 Nov 2012 5:50 PM
This is pretty useless: doesn’t tell me how to generate the MSI file or the RDP file. I don’t want an app on RD Web Access—that’s way too complex for my «where’s the icon» users. I just want the MSI/RDP file. This is so HUGELY complex compared to the simple and streamlined methods back in Server 2008R2. Makes me not want to install any new servers.
-
19 Nov 2012 7:52 AM
Hi DNeuwir,
This Wiki is about the publication of Remote App in general. You can access those Remote Apps by using either WebAccess or the Web feed URL to place them on the end users local startmenu / startscreen. The functionality to create .msi or .rdp files using the RemoteApp Manager has unfortunately been deprecated in Windows Server 2012. There is an easy way to extract the .RDP files generated for the Remote Apps however, more on that for example here:
microsoftplatform.blogspot.nl/…/distribution-of-remote-apps-and.html
Kind regards,
Freek Berson
p.s. This Wiki has been created 6 months back (based on Windows Server 8 and the knowledge we had back then). I’m planning to update this week soon!
-
19 Nov 2012 11:46 AM
Freek Berson edited Revision 2. Comment: Updated the srceenshots from «Windows Server 8» to Windows Server 2012
-
19 Nov 2012 12:15 PM
I updates the screenshots based on Windows Server 8 to the screenshots based on Windows Server 2012. Also, for more details on distributing the Remote Apps and Desktops also see this Wiki:
social.technet.microsoft.com/…/14488.distribution-of-remote-apps-and-desktops-in-windows-server-2012.aspx
Kind regards,
Freek Berson
-
20 Nov 2012 1:54 PM
Good documentation ! It use the mstsc’s client to create the icon the desktop ? and it’s a single sign-on I guess, like on the startup menu for the user ?
-
20 Nov 2012 1:54 PM
Good documentation ! It use the mstsc’s client to create the icon the desktop ? and it’s a single sign-on I guess, like on the startup menu for the user ?
-
20 Nov 2012 1:54 PM
Good documentation ! It use the mstsc’s client to create the icon the desktop ? and it’s a single sign-on I guess, like on the startup menu for the user ?
-
28 Jan 2013 10:35 AM
Good documentation, I was wondering how to publish an app hosted on a network drive? I keep receiving the following message when I try to select the executable:
You must specify a file from the RD Session server
SVTEST.INFO.COM by using the UNC path; for example
\SVTEST.INFO.COMc$pathfilename.exe.
If the problem persists, ensure that the following Windows Firewall
exceptions are enabled:
1. File and Printer Sharing (SMB-Out).
1. File and Printer Sharing (SMB-In).
Note: I have tried using an UNC path to no avail. I believe the issue is related to the bile not being hosted on the RDP server.
-
29 Jan 2013 2:58 AM
Hi Jonathan,
Yes you are supposed to provide a location on the RD Session Host server itself. What I have seen people do is create a workaround where .cmd file on the RD Session Host Server that Launches the application on the network share. This will probably not be fully supported, so no guarantees there, but below some info on how to configure this:
Here you see a Remote App (procmon,exe) running: http://bit.ly/TQuGEf
Here you see that the Remote App points to a exe on a network share: http://bit.ly/TQuxAy
This is how the .cmd file is configured: http://bit.ly/TQv5GL
Kind regards,
Freek Berson
themicrosoftplatform.net
-
6 Feb 2013 7:27 AM
Hi Freek, The local exec restriction in the UI is not present when using Powershell to create the remote app. So for appc running over UNC path, creating a new remote app through Powershell is the way to go!
1- Run Powershell as admin
2- Execute the following command:
New-RDRemoteApp -CollectionName [collection_name] -DisplayName [remote_app_display_name] -FilePath «\servershareexecutable.exe»
Приложения RemoteApp представляют собой программы, удалённый доступ к которым предоставляется с помощью служб удалённых рабочих столов, но выглядят они так, будто это локальные приложения. Проще говоря, приложение RemoteApp представляет собой доступ к удалённому рабочему столу, ограниченному одним приложением. Однако, несмотря на формулировку выше, пользователь может запускать несколько приложений или несколько экземпляров одного и того же приложения в одном сеансе.
Использование приложений RemoteApp выглядит хорошей альтернативой традиционным удалённым рабочим столам, поскольку это приносит для системного администратора целый ряд преимуществ. Эти выгоды связанных с тем, что пользователю более не доступен рабочий стол полностью и его действия ограничены границами запускаемого приложения. А как известно, что чем меньше у пользователя возможностей крутить и настраивать, тем надёжнее и безопаснее работает система. Пользователям так же удобно использовать приложения RemoteApp, поскольку они выглядят так же как и любое локально установленное приложение, что значительно упрощает работу.
В этой статье будут рассмотрены следующие моменты:
- Процесс публикации приложений RemoteApp
- Проверка работоспособности приложений RemoteApp
- Изменение параметров опубликованных приложений RemoteApp
- Отмена публикации приложений RemoteApp
Публикация приложений RemoteApp
Для того, чтобы опубликовать какое-либо приложение RemoteApp нужно открыть Диспетчер задач, перейти в Службы удалённых рабочих столов и там перейти по ссылке с именем коллекции сеансов. В окне коллекции сеансов нажимаем на ссылку Публикация удалённых приложений RemoteApp. В том случае, если уже имеются опубликованные приложения, необходимо нажать на кнопку Задачи и в открывшемся меню выбрать Опубликовать удалённые приложения RemoteApp.
Следует помнить, что публикация хотя-бы одного приложения приведет к отмене публикации удалённого рабочего стола. Это означает, что в одной коллекции могут быть либо удалённый рабочий стол полностью либо некий набор отдельных приложений RemoteApp.
Публиковать можно как предустановленные приложения так и свои собственные. Попробуем опубликовать одно предустановленное (Калькулятор) и одно собственное приложение (Foxit Reader). Для того, чтобы опубликовать встроенное приложение необходимо отметить его и нажать кнопку Далее.
С приложениями, которых нет в списке несколько сложнее. Тут требуется соблюсти одно важное условие — необходимо чтобы публикуемое приложение размещалось по одному и тому же пути на все серверах узлов сеансов. Если это так, то нажимаем кнопку Добавить и указываем необходимое приложение.
Как видно на рисунке, указание приложения, в данном случае, происходит на сервере RDSH2.
После того, как все приложения отмечены нажимаем кнопку Далее.
В следующем окне подтверждаем свой выбор нажав кнопку Опубликовать.
После публикации приложений RemoteApp, будет отображено окно в котором показано состояние приложений и ошибки, возникшие при установке. Если же ошибок не возникло, то нажимаем кнопку Закрыть, для завершения процесса публикации.
Проверка публикации программ RemoteApp
После успешной публикации удалённых приложений RemoteApp, проверим корректность их работы. Для этого осуществим веб-доступ к RDS с одной из рабочих станций домена. Напомню, что для того чтобы получить веб-доступ к службам удалённых рабочих столов необходимо перейти по специальной ссылке вида https://servername/rdweb. В рассматриваемом случае, это ссылка https://rdwh.domain.local/rdweb.
Как мы видим, приложения успешно опубликовались и можно попробовать получить к ним доступ. Запустим Foxit Reader.
Приложение успешно запустилось и готово к использованию. О том, что это приложение RemoteApp говорит иконка с изображением двух направленных друг к другу стрелок рядом с иконкой основного приложения.
Посмотрим, как отобразилось подключение на серверной стороне. Зайдем в свойства коллекции сеансов и посмотрим на панель Подключения.
На скриншоте выше отображено осуществлённое подключение. Как видим, несмотря на то, что путь к программе Foxit Reader мы указывали на сервере RDSH2, подключение было выполнено к серверу узлов сеансов RDSH1.
Изменение параметров приложений RemoteApp
Каждое приложение RemoteApp имеет ряд ключевых опций, которые можно изменить в соответствии с требованиями. Для того, чтобы зайти в меню настроек приложения достаточно в окне коллекции сеансов (в данном случае в окне Коллекция сеансов RDS) на панели Удалённые приложения RemoteApp вызвать контекстное меню приложения, параметры которого необходимо изменить, и там выбрать единственный пункт Изменить свойства.
На вкладке Общие окна свойств приложения доступны следующие настройки:
- Имя удалённого приложения RemoteApp. Позволяет задать произвольное имя для опубликованного приложения.
- Показывать удалённое приложение в службе веб-доступа к удалённым рабочим столам. Если выбрать пункт Нет, то приложение не будет отображаться списке приложений на странице веб-доступа и не будет доступно пользователям, хотя будет установлено на серверах узлов сеансов и будет иметь статус опубликованного.
- Папка удалённого приложения RemoteApp. Этот параметр позволяет упорядочивать приложения RemoteApp, раскладывая их по папкам.
Кроме настроек, в данном окне отображается информация о пути размещения приложения, его псевдониме и иконке.
Папку удалённого приложения RemoteApp можно либо задать вручную, написав в соответствующем поле желаемое имя папки, либо выбрав из существующего списка, если папки были созданы ранее. Поместим приложение Foxit Reader в папку Офисные приложения и посмотрим, что произойдет со страницей веб-доступа.
Как видим, выбранное приложение Foxit Reader было успешно помещено в папку Офисные приложения.
На вкладке Параметры можно задать параметры командной строки для приложения. Именно здесь можно разрешить использовать любые параметры командной строки или вообще запретить их использование. Помимо этого можно задать принудительное использование заранее заданных параметров. В целом ряде случаев, последний параметр очень выручает.
Свойства вкладки Назначение пользователей позволяют настроить видимость приложения в системе веб-доступа для заданных пользователей или групп пользователей. Поскольку по умолчанию все пользователи коллекции сеансов имеют доступ ко всем опубликованным в ней приложениям, данная вкладка позволяет гибко настроить доступ пользователей к приложениям RemoteApp внутри самой коллекции.
На вкладке Сопоставление типов файлов можно задать типы файлов, которые автоматически будут открываться с помощью выбранного приложения RemoteApp.
Следует помнить об одном очень важном ограничении — данная опция не работает в случае веб-доступа к приложениям.
Отмена публикации приложений RemoteApp
В случае, когда удалённое приложение больше не используется, целесообразно отменить его публикацию. Рассмотрим выполнение этой операции на примере приложения Калькулятор.
Для того, чтобы вызвать мастер отмены публикации удалённых приложений RemoteApp нужно выбрать пункт Отменить публикацию удалённых приложений RemoteApp в меню Задачи на панели Удалённые приложения RemoteApp.
На первом шаге мастера выбираем из списка опубликованных приложений RemoteApp приложение, публикацию которого необходимо отменить. Можно выбрать все приложения и в таком случае после отмены их публикации станет возможен доступ к удалённому рабочему столу полностью.
В окне с подтверждением выбора предлагается проверить правильность выбранных приложений и нажать кнопку Отменить публикацию.
После успешного выполнения операции отмены публикации отобразится окно, сообщающее об этом.
***
Как видим, процессы добавления, удаления и настройки удалённых приложений RemoteApp довольно быстро и удобно осуществляются из единой панели Удалённые приложения RemoteApp на вкладке коллекции сеансов.
Оказалось что в 2012 сервере Майкрософт не очень хорошо поступил с ремот апп — http://beardedsysadmin.wordpress.com/2014/01/30/rds-remoteapp/. Сплошные мучения с веб-доступом, браузер зачем-то запускать. Я не стал разбираться и решил найти простое решение. Оказалось есть специальная софтинка — https://sites.google.com/site/kimknight/remoteapptool. Подробности на http://stealthpuppy.com/remoteapp-for-windows-xp-and-windows-vista-the-missing-pieces/. Но по сути софтина делает ярлык и добавляет новую ветку в реестре.
Вот подробности из блога технаря:
Возможность опубликовывать приложения с помощью remoteapp в среде Windows server 2012 без контроллера домена отсутствует.
Да и ограничение ставить терминальный сервер и контроллер домена дает о себе знать.
На форумах технет найдено решение, обходящее эту проблему:
Пример опубликования WinRar.
Создаем файл c расширением rdp со следующим содержимым:
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:TS01
alternate shell:s:||C:Program Files (x86)WinRARWinRAR.exe
remoteapplicationprogram:s:||WinRAR
gatewayhostname:s:
remoteapplicationname:s:WinRAR
remoteapplicationcmdline:s:
Так же на сервере правим реестр
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplicationsWinRAR]
"CommandLineSetting"=dword:00000000
"RequiredCommandLine"=""
"IconIndex"=dword:00000000
"IconPath"="%SYSTEMDRIVE%Program Files (x86)WinRARWinRAR.exe"
"Path"="C:Program Files (x86)WinRARWinRAR.exe"
"VPath"="%SYSTEMDRIVE%Program Files (x86)WinRARWinRAR.exe"
"ShowInTSWA"=dword:00000001
"Name"="WinRAR"
"SecurityDescriptor"=""
Расшифровка ключей в эрдипи файлике тут — http://technet.microsoft.com/en-us/library/ff393699%28v=ws.10%29.aspx
Прочитано:
24 517
Итого как я начал свое изучение работы системы Server 2012 R2 Std меня пока многое не радует, а именно то что вроде как сложнее стало использование RemoteAPP и разворачивание терминального сервера на этой оси, но отступать ни в коем случае нельзя. Хоть и не удобно работать пока во всяком случае, а изучать нужно — это и повышение квалификации и новые требования к соискателям, да и переходить на новый функционал также необходимо или по крайней мере иметь ввиду. Вот сейчас я для себя разберу как создать свое приложение на терминальном сервере и опубликовать его во всех шагах с которыми мне пришлось столкнуться.
По правильному все нужно настраивать самим чтобы быть уверенным в используемом конечно если Вы такой же как и я ответственный системный администратор.
Как Вы уже помните в прошлой заметке когда я знакомился с RemoteAPP по умолчанию для всех пользователей домена создана коллекция с дефолтным именование: QuickSessionCollections, так вот ее нужно будет удалить.
Запускаю оснастку «Server Manager» — Win + X → Control Panel — Administrative Tools, после переходу в апплет Remote Desktop Services — Collections и в правой части через выделение дефолтной коллекции по правом клику нажимаем Remove Collection — Yes
Вот теперь уже лучше ничего дефолтного нет, начну пожалуй с создания своей собственной коллекции. Все также находясь в апплете Remote Desktop Services — Collections — TASKS — Create Session Collection и передвигаюсь за мастером настройки по шагам:
Before You Begin, Next
Collection Name:
- Name: → polygon
- Description: → кто как хочет я же люблю чтобы все было подписано.
И нажимаю Next
RD Session Host:
выделяю текущий сервер и нажатием по стрелочке предопределяю что система выбрана в пуле;
И нажимаю Next
User Groups: нужно указать на кого будет распространена новая коллекция, либо на пользователя и/или же на группу, либо на всех пользователей домена. Лучше будет если только тем кому надо предоставлен доступ, так правильнее.
Add… — ввожу alektest (и себя не забываю ekzorchik) нажимаю Check Names после OK, конечный результат данного шага выглядит так:
И нажимаю Next
User Profile Disks: можно указать местонахождение профиля пользователя и его размер, в моей задачи это пока не требуется, а потому я снимаю галочку Enable user profile disks
И нажимаю Next
Confirmation: проверяю по результирующему выводу настройки сделанные выше и если все OK, то нажимаю Create
Ожидаю когда моя коллекция — polygon создастся
И нажимаю Close
Теперь когда коллекция создана пора переходить к созданию приложения.
Запускаю оснастку «Server Manager» — Win + X → Control Panel — Administrative Tools, после переходу в апплет Remote Desktop Services — Collections — Polygon — Tasks (RemoteAPP Programs) — Publish RemoteApp Programs и идем по шагам за мастером:
RemoteApp Programs: в правой части будут указаны все приложения которые установлены на данном терминальном сервере если же в списке не оказало того которое необходимо его можно добавить — Add…
(Установил клиент 1С на терминальный сервер версию клиента 8.2.19.121)
у меня при указании местонахождения исполняемого файла 1С => 1cv8.exe сработал аларм о не возможности :
Дело в том, что я указал путь просто: C:Program Files (x86)1cv828.2.19.121bin1cv8.exe
(как я думал наивно что это: 1C Enterprise 8 (thin client), а это не правильный формат об этом как раз ошибка и говорит, нужно указать путь вот в таком вот формате:
\srv-serv.polygon.localc$Program Files (x86)1cv82common1cestart.exe
добавленное приложение будет отмечено в списке как показано на представленном ниже скриншоте
И нажимаю Next
Confirmation: проверяю и после нажимаю Publish
Completion: если Вы как и Я видите надпись: The selected RemoteApp programs were published successfully for the polygon collection, то значит Вы только что опубликовали свое первое приложение.
И нажимаю Close
Теперь проверяю с клиентской станции собственно как выглядит подключение к рабочей области (об это я уже говорил в прошлой заметке) и запуск опубликованного приложения в виде 1С клиента):
Windows 7 Professional SP1 (user&pass: alektest&Aa1234567)— IE — https://srv-serv.polygon.local/rdweb
после ввода логина и пароля в рабочую область получаем гордо одинокое приложение клиента 1С доступное этому пользователю:
Когда мы запускаем приложение, то в правом нижнем углу экрана возле часов появляется пиктограмма указывающая, что сейчас мы работаем на удаленном терминальном сервере:
И вот оно долгожданное окно первого запуска клиента 1с, раз первый раз пользователь alektest запускает клиент то он не настроен ни на какой кластер 1с, настроив раз больше уже не понадобиться.
Настроив клиент и авторизовавшись при подключении у кластера 1С получаем запущенное приложение как будто бы оно было запущено локально за одним лишь исключение, что ресурсов на терминальном сервере много больше чем на рабочей станции.
На заметку: первый раз потребуется ввести доменные административные идентификационные данные дабы на сервер прописались ключи и файлы защиты для этого будет выведено специальное окно ввода логина и пароля.
Пример запущенного клиента 1С — он ничем не отличается от локального запуска:
Это конечно все хорошо, а как быть на других рабочих местах, что каждый раз заходить по URL ссылке и оттуда запускать, вот бы как ранее экспортировать приложение в виде rdp или msi файла. Загвоздка вот в чем, в оснастке Server Manager на терминальном сервере данная функциональная возможность не предусмотрена, а потому дальнейшие шаги проделываем на самом сервере:
Win + X — Control Panel — RemoteApp and Desktop Connections — Access RemoteApp and desktops — указываю URL подключения вида:
Email address or connection URL: https://srv-serv.polygon.local/RDWeb/Feed/WebFeed.aspx
и нажимаем Next, Next вот только не все так просто как кажется на первый взляд, удаленный компьютер отверг мое подключение:
Исправляюсь: — создаю самоподписанный сертификат для текущего сервера:
Запускаю оснастку «Server Manager» — Win + X → Control Panel — Administrative Tools, после переходу в апплет Remote Desktop Services — Collections — TASKS — Edit Deployment Properties — Certificates — выделяю RD Web Access — Create new certificate…
- Certificate name: srv-serv.polygon.local
- Password: 712mbddr@
Allow the certificate to be added to the Trusted Root Certification Authorities certificate store on the destination computers отмечаю галочкой
Store this certificate: Отмечаю галочкой и указываю путь где куда его нужно сохранить на сервере дабы потом распространить на рабочие станции
Certificate path: c:srv-serv.pfx
По такому же принципу можно создать сертификаты и для остальных ролей сервисов RD
И нажимаю OK — Apply
И нажимаю OK
Win + X — Command Prompt (Admin) — mmc — File — Add/Remove Snap-in… — находим оснастку Certificates — нажимаем Add Computer Account — Next — Finish и OK, здесь нужно перенести текущий сертификат сервера srv-serv.polygon.local из Personal в Trusted Root Certification AuthoritiesCertificates
Далее повторяем шаги по подключению через Панель управления на самом сервере к RemoteAPP (Control Panel — RemoteApp and Desktop Connections) и вот уже другое разнообразие запрашивается
И вуаля все проходит успешно
Нажимаю Finish
И вот к чему я так стремился:
После того, как было настроено удаленное подключение к RemoteAPP в системе становится доступным следующий каталог:
Вот собственно и всё по шагам которые нужно сделать, что опубликовать свое собственное приложение целью которого будет организовать в последствии терминальный сервер с собственным набором приложений которые используют ресурсы самого сервера, а не ресурсы рабочих станций. Да и управлять единым способом намного удобнее чем каждый раз бегать и вручную что-то проделывать. Да интересно, но когда одну и туже операцию проделываешь не один десяток раз хочется добавить в свою жизнь автоматизации. Пока я подведу черту в этой заметке она работоспособна и практична. На этом я прощаюсь и до новых встреч, с уважением автор блога — ekzorchik.
-
December 21 2012, 12:13
Возможность опубликовывать приложения с помощью remoteapp в среде Windows server 2012 без контроллера домена отсутствует.
Да и ограничение ставить терминальный сервер и контроллер домена дает о себе знать.
На форумах технет найдено решение, обходящее эту проблему:
Пример опубликования WinRar.
Создаем файл c расширением rdp со следующим содержимым:
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:TS01
alternate shell:s:||C:Program Files (x86)WinRARWinRAR.exe
remoteapplicationprogram:s:||WinRAR
gatewayhostname:s:
remoteapplicationname:s:WinRAR
remoteapplicationcmdline:s:
Так же на сервере правим реестр
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplicationsWinRAR]
"CommandLineSetting"=dword:00000000
"RequiredCommandLine"=""
"IconIndex"=dword:00000000
"IconPath"="%SYSTEMDRIVE%\Program Files (x86)\WinRAR\WinRAR.exe"
"Path"="C:\Program Files (x86)\WinRAR\WinRAR.exe"
"VPath"="%SYSTEMDRIVE%\Program Files (x86)\WinRAR\WinRAR.exe"
"ShowInTSWA"=dword:00000001
"Name"="WinRAR"
"SecurityDescriptor"=""
В Windows Server 2012 консоль Server Manager работает таким образом, что при попытке публикации приложения RemoteApp, для которого выбран исполняемый файл расположенный на общем сетевом ресурсе, возникает грозное уведомление о том, что мы можем выбирать исполняемые файлы расположенные только на каком-то конкретном сервере RD Session Host (RDSH)…
На самом деле это не так, и мы вполне можем выполнить публикацию исполняемого файла расположенного в сети с помощью командлетов PowerShell из модуля RemoteDesktop…
Рассмотрим публикацию приложения RemoteApp с помощью PowerShell на примере КонсультантПлюс. Но сначала сделаем небольшое отступление в сторону описания особенностей использования КонсультантПлюс в распределённой многопользовательской среде. В нашем примере исполняемый файл этого приложения (cons.exe) расположен вместе с файлами правовых баз данных в общем сетевом каталоге. Нам нужно опубликовать это приложение для пользователей фермы RDS состоящей из нескольких серверов. В ферме RDS используется механизм перемещаемых профилей Roaming User Profiles. Наше приложение для сохранения пользовательских настроек использует специальные служебные каталоги ConsUserData. Поэтому, учитывая нашу специфику перемещаемых профилей, создадим специальный ярлык (*.lnk) для запуска КонсультантПлюс в ферме RDS в режиме RemoteApp.
Дадим ярлыку имя, например CONS_RemoteApp.lnk и разместим его в той-же сетевой папке, где расположен сам исполняемый файл приложения. В качестве рабочей папки обязательно укажем значение ссылающееся на переменную %AppData% которая указывает на часть пользовательского профиля, которая обрабатывается механизмом Roaming User Profiles (это позволит нам добиться того, что при входе на любой сервер фермы RDS, пользователь будет иметь одни и те же настройки в КонсультантПлюс)
Так как с свойствах ярлыка мы указали каталог (%AppData%ConsUserData), которого не существует для вновь создаваемых профилей пользователей, нам придётся позаботиться о его создании, например с помощью Group Policy Preferences (GPP). Создадим в групповой политике применяемой к пользователям на серверах RDS соответствующую настройку GPP в разделе
User ConfigurationPreferencesWindows SettingsFolders
Теперь всё что нам остаётся сделать, это опубликовать созданный ярлык с помощью PowerShell:
Import-Module RemoteDesktop New-RDRemoteApp -Alias ConsultantPlus ` -DisplayName "Консультант Плюс" ` -FilePath "\FileServerConsultantPlusCONS_RemoteApp.lnk" ` -IconPath "\FileServerConsultantPluscons.exe" -IconIndex 0` -ShowInWebAccess 1` -collectionname "KOM-AD01-RDCOLL"` -ConnectionBroker "KOM-AD01-RDS21.holding.com"
Если мы включаем признак публикации приложения на веб-странице RD Web Access и при этом там используются папки, то указать папку в которую нужно разместить ярлык можно добавив к команде ключ:
-FolderName "Бизнес приложения"
Если необходимо ограничить доступ к публикуемому приложению, то к команде можно добавить ключ определяющий перечень доменных групп безопасности:
-UserGroups @("KOMAccountants","KOMLawyers")
Практика показывает, что на текущий момент, опубликованное таким образом приложения отображаются в консоли Server Manager , но при попытке сохранить изменение их свойств возникает ошибка…
Поэтому, если потребуется изменить свойства такого RemoteApp приложения, путь один – PowerShell.