remoteapp в 2012 R2 без домена

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_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\1cestart]
 "CommandLineSetting"=dword:00000000
 "RequiredCommandLine"="" 
 "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, закидываем в реестр. Проверяем. Если не работает, смотрим ветку 1cestart. Значения из 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С нет в списке разрешенных.

Или вот такое ещё может быть:

Посмотрел на сервере ветку 1cestart:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\1cestart

Она пустая. При копировании текста с сайта могут неправильно переноситься кавычки, ещё что-то. Поэтому нужно подправить/проверить вручную.

  1. Path — для 1С 8.3 будет 1cv8\common\1cestart.exeдля 1С 8.2 1cv82\common\1cestart.exe
  2. 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 в 2012 R2 без домена

Если режим 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

  1. Уровень безопасности SSL;
  2. Уровень шифрования FIPS-совместимый;
  3. Подключения принимаются только от клиентов с NLA.

Траблшутинг

Залипания

Если возникают на 1 клиентском компьютере, нужно проверить сам компьютер и такие вещи как драйвера на видеокарту, количество свободных ресурсов, потому как залипание может происходить в моменты, когда жесткий диск свопит изо всех сил и даже мышку. Была курьёзная ситуация (несвязанная с данной проблемой), что при нажатии на кнопку мыши щелчок есть, а фактически нажатия нет, поменяли мышку, всё работает.

Если же залипание массовое и с ресурсами сервера всё в порядке, то проблема 90% сетевая. В 2012 R2 для RDP используется как TCP, так и UDP или только TCP. Нужно проверить, что UDP используется. Статья в помощь. Сайт MS. Таже нужно просмотреть политики.


Область применения

Статейка написана давно, более чем 2 года назад, тогда Windows Server 2012 R2 был ещё относительно свежим и хотелось разобраться как же это всё настроить. Был накидан рабочий черновик, вот эта заметка и ни на какую полноту она не претендует. С тех пор поднято несколько серверов в данном режиме, которые работают так по сей день.

Тема исчерпана, но вопросы идут и некоторые люди не понимают нишу использования remoteapp, зачем такой режим, почему именно для 1C, какой тут смысл и в чём заключается выигрыш. Вещи-то очевидные, но раз так, то надо сказать пару слов.

remoteapp не панацея

В общем и целом remoteapp решение нищебродское, если уж по честному. Плюсом есть очень толстые минусы как RDP, так и remoteapp:

  1. Каждый раз когда пользователь хочет сохранить файл, ему открываются диски удалённой машины. Есть варианты, но это неудобно в работе;
  2. Далеко не все пользователи продвинутые и с компьютером "на ты", многие очень тяжело воспринимают remoteapp, они путаются где какой диск, сложно и затратно по времени растолковать им данный режим работы;
  3. Для запуска remoteapp нужно время, так как на сервере должен загрузиться пользовательский сеанс;
  4. При закрытии приложения сеанс отключается и нужно ждать его завершения (минимум 1 минута), если в сеансе открыт конкретный фал, он будет блокирован на запись. Можно разрешить множественные сеансы для пользователя или можно убрать ограничения для отключенного сеанса, тогда возникают другие проблемы;
  5. В зависимости от версии Windows Server могут возникать различные глюки, связанные с временными задержками (не помню точно в какой версии сервера, но загружается сеанс и его нельзя завершить ~30 секунд сразу после загрузки, было такое);
  6. Каждое запущенное приложение — отдельный сеанс и отдельная нагрузка на сервер;
  7. Сам сервер и лицензии для RDP стоят приличных денег, этот вопрос всплывёт рано или поздно.

Может что-то даже упустил из виду, хотя и так немало. Поэтому использовать remoteapp нужно тогда, когда это действительно необходимо.

Примечание. Очень хороший пример когда не нужно использовать remoteapp Word и Excel. 

Зачем 1С remoteapp?

Схема применения 1С может варьироваться в очень широких пределах от локальной однопользовательской базы до сотен пользователей и кластера серверов. Возьмем классический вариант: многопользовательская база на 5-15 пользователей. Работа с такой базой, даже на 5 человек, генерирует большой сетевой трафик и сама база требует серьёзной вычислительной мощности. Вот отсюда и два варианта применения remoteapp для 1С:

  1. Если чистый файловый вариант базы и как раз 5-6 человек, потому как больше такая схема не потянет, тогда весь обсчёт на клиентах — для того чтобы перенести обсчёт с клиентов на сервер. Это позволяет увеличить число клиентов и одновременно значительно повысить скорость работы без внедрения СУБД;
  2. Удаленная работа через медленные либо лимитные каналы связи как в файловом варианте, так и в клиент-серверном — передавать изображение намного выгоднее по объёму трафика, чем трафик 1С.
remoteapp vs классический RDP

Обычно в случае 1С база на сервере, а вот документы для работы на локальном компьютере. Всё время сворачивать и разворачивать окно RDP неудобно, remoteapp тут гораздо комфортнее.

Исключения
  1. Если все клиентские машины достаточно мощные (Core i3 и выше), баз мало (1-2-3), базы файловые, сеть локальная гигабитная, пользователей не больше, скажем, 5 и работа с базой не слишком интенсивная, тут даже сервер не нужен. Подойдёт любой компьютер с гигабитной сетевой картой и быстрым диском. Важный момент, что все машины мощные, так как 1 слабый компьютер станет узким местом и скорость работы будет равняться по нему;
  2. При удалённой работе есть альтернатива remoteapp — веб публикация 1С. У каждого из этих решений свои плюсы и минусы;
  3. Используется СУБД и тонкие/веб клиенты. Тогда ничего не надо, стандартные корпоративные каналы достаточно широкие сейчас чтобы переварить такой трафик. Открыть для 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_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\1cestart]
 "CommandLineSetting"=dword:00000000
 "RequiredCommandLine"=""  
 "Name"="1C Предприятие" 
 "Path"="C:\Program Files\1cv8\common\1cestart.exe" 
 "ShortPath"="C:\PROGRA~1\1cv8\common\1cestart.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. Проверяю, работает.

Так что в случае проблем припоминай не было ли каких-то варнингов, ошибок, проверяй всё по второму кругу. Должно работать.

95 thoughts on “remoteapp в 2012 R2 без домена”

  1. Алексей

    Спасибо, всё пункт-в-пункт получилось, очень дельная статья.

  2. Подскажите, а если делать 1с 7.7 - все останется также, только в файле реестра поменять пути на "C:\Новый БИН\BIN\1cv7.exe" а 1cestart на 1с77.exe?

    1. Спасибо за отзыв. Никаких проблем с 7.7 быть не должно. Все именно так - поменять название 1cestart на нужное и поменять пути. Только внимательно проверить, что заменено везде, где встречается.

  3. Алексей

    Спасибо, почти всё получилось. Почему то сервер только двоих пускает, при входе третьего спрашивает кого закрыть.

    1. Пожалуйста, рад, что моя заметка помогла. Если пускает только двоих, то скорее всего неправильно настроено лицензирование. По умолчанию всегда есть 2 лицензии для администраторов. Рекомендую проверить следующее: 1)соответствие типа установленных лицензий и настройки сервера терминалов в групповых политиках - и там и там должно быть или "на пользователя", или "на устройство"; 2)сервер лицензирования находится в активированном состоянии и доступен.

  4. Дмитрий

    Андрей, а удалось ли вам победить проблему с remoteapp 2012 и Windows XP? При сворачивании окна 1с экран не перисовывается, я так понял проблема эта на стороне клиента RDP.

    1. Андрей

      Дмитрий, не встречался с такой проблемой и теперь уже вряд ли встречусь, так как XP умер, причем давно.
      По существу Вашего вопроса - могу ошибаться, это всего лишь мысль, которая сразу пришла в голову - remoteapp скорее всего (точно не могу утверждать)
      рисуется оверлеем, то есть картинка поверх картинки, если по-простому. Окно не перерисовывается? Виноват конечно драйвер видеокарты, обновите его или
      попробуйте установить дискретную видеокарту вместо встроенной. Само-собой SP3 должен быть установлен всегда - решает.

      1. Дмитрий

        Вопрос решается, но странно, удалением RDP 7.0 и возврату к RDP 6.1, может кому-то это поможет.

  5. Владислав

    Андрей у меня вопрос, а если у меня 2 платформы, как мне научить запускать 1С для обеих платформ, т.е. если заходишь с рабочего стола то 1С Предприятие, в зависимости от файла конфигурации выбирает нужную ему платформу.

    А в инсталлере у меня их 2

    {D9A12FBC-DA55-4D29-9DAE-91540A8990B2}
    {F92D4A04-D7B3-49CC-935D-37E5E5C09508}

    1. Андрей

      Добрый день, Владислав. Смотрите ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications на сервере, туда не внеслась/неправильно внеслась информация, проверяйте. Список разрешенных приложений находится в этой ветке.
      По поводу двух платформ: выбор версии платформы осуществляет автоматически 1cestart.exe, он для этого и нужен собственно. Значит Вам надо прописать в remoteapp одно приложение - 1cestart.exe от 8.3 (C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe), если у Вас 8.2 и 8.3.

      1. Андрей

        Еще, как вариант, в настройках списка баз для каждой базы указываем необходимую платформу (если они у Вас разные).

  6. Владислав

    Андрей, все сделал по гайду но все равно выдает ошибку,
    Следующее удаленное приложение RemoteAPP отсутствует в списке разрешенных программ. Обратитесь к сисадмину.

    1. Андрей

      Список разрешенных приложений для remoteapp находится в ветке реестра. Что тут еще посоветовать?.. Попробуйте удалить ветку, перезалить из файла еще раз. 50% ошибок элементарная невнимательность, лишний символ, лишний пробел, перенос строки, где его не должно быть. И еще ошибки копи-паст - криво переносится символ - в таком духе. Если не работает команда, которая точно должна работать, можно набить ее руками. Это, пожалуй, все, что могу сказать здесь.

      1. Владислав

        Нашел ошибки, у вас в гайде для реестра запись делается неправильно.

        Вот правильная.

        Windows Registry Editor Version 5.00
        [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplications1cestart]
        "CommandLineSetting"=dword:00000000
        "RequiredCommandLine"=""
        "IconIndex"=dword:00000000
        "IconPath"="%SYSTEMDRIVE%\Windows\Installer\{D9A12FBC-DA55-4D29-9DAE-91540A8990B2}\ShortCut_ThinStarter.exe"
        "Path"="C:\Program Files (x86)\1cv8\common\1cestart.exe"
        "ShortPath"="C:\PROGRA~2\1cv8\common\1cestart.exe"
        "ShowInTSWA"=dword:00000001
        "ShowInTSWA"=dword:00000001
        "Name"="1C Предприятие"
        "SecurityDescriptor"=""

        Все заработало, спасибо вам огромное

  7. Андрей

    Да, точно, все оказалось задвоенное. Что говорил про невнимательность? 🙂 Поправил. Спасибо большое.

  8. Михаил

    Всё настроил, 1С стартует, ввожу логин-пароль, проходит аутентификация и всё, морда приложения просто не появляется.

    захожу на сервер - гляжу, сессия висит, правда отключенная (WTF??) запускаю rdp-файл повторно, и вуаля, морда 1С видна

    почему так, почему сессия отваливается на одном и том же этапе?

    1. Андрей

      Насколько припоминаю, такая же штука была в связке 1С + MS SQL, но там она была только для первого запуска, то есть первый запуск логин-пароль и ничего,
      второй и последующие уже нормально. С чем связано не разбирался, тайны электричества. Больше ничего по теме сказать не могу.

  9. Ернест

    Здраствуйте!
    все равно выдает ошибку,
    Следующее удаленное приложение RemoteAPP отсутствует в списке разрешенных программ. Обратитесь к сисадмину
    Посмотрел ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\
    а папки \Applications\1cestart там нету. Куда прописываются розшарение приложения??

    1. Андрей

      Специально слил еще раз ветку реестра с рабочей машины:

      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"=""

      Каждая команда должна быть на отдельной строке, без переносов на следующую строку. В гайде не так,
      но это подразумевается. Ширина столбца в WordPress не дает вставить одной строкой. Проверьте это и все остальное, что связано с закидыванием
      файла в реестр. Должно получиться.

  10. спасибо за статью. вопрос про иконки - а если для программы нет папки в "%SYSTEMDRIVE%\\Windows\\Installer\\ то что делать? как можно сделать ещё отображение иконки? у меня вместо неё для всех программ синий компьютер показывается

    1. Андрей

      Если работает, то какая разница? 🙂 Главное правило админа знаете?
      - Работает - не трогай!

      1. большая, если приложений большое количество то это очень помогает. представьте если бы у вас все программы имели один значок, как бы вы ориентировались?
        да и сломать тут что то будет сложно.

        1. Андрей

          Легко - по названию под значком и расположению на десктопе.
          Веду записи в блокноте, привык, удобно, при этом
          у меня на рабочем столе всегда 5-6 значков "Новый текстовый документ (2).txt"..
          "Новый текстовый документ (10).txt" и не парит ни разу.
          По существу вопроса - а если "Свойства" - "Сменить значок", так не проще будет?
          Если для программы 1С нет папки в C:\Windows\Installer, то
          программу нужно установить/переустановить и папка появится.

          1. Значки на рабочем столе я естественно поменял. я имею ввиду значки на панели задач, они всё равно выглядят одинаково. что интересно, если расшарить explorer и запускать программы через него то значки нормальные.
            http://prntscr.com/cmtsv2
            на скрине первые два значка - программы запущены через rdp файлы, а два других - запущены через расшареный explorer. хотелось бы чтобы все значки выглядели так же)

  11. Все работает, но украинский язик не переключается! Хоть на РДП он есть!
    Все облазил нигде не нашел чтоб добавить его в ремовеатт

  12. Александр

    Статья супер!
    Помогла с первого раза.
    Появилась необходимость установить 1с77.
    Перечитал комментарии и стал искать папку Installer, чтобы всё правильно переписать.
    И проблема в том, что папки Installer нету.
    Windows Server 2012 R2

    1. Андрей

      Да, 16-bit инсталлятор не даст установить 1C 7.7 на 64-bit OS. Там же только копированием папки, правильно? Должно работать и без этих ключей реестра. Если бы делал, то для файловой 7.7 поднял бы 32-bit виртуальную машину 2008 внутри 2012 - remoteapp там тоже есть, при SQL-версии, конвертировал бы в файловую. Если оба варианта не подходят, то это уже проблема предприятия, а не админа.

    1. Андрей

      Дмитрий, вам тоже спасибо за интерес к моему сайту.

  13. Дмитрий

    Андрей, спасибо за статью, очень помогли.

    1. Скажите можно ли как то ярлык для Remoteapp настроить через GUI?

    Например добавить туда несколько приложений, чтобы юзер мог выбрать какое запускать. (в одном ярлыке.rdp)

    2. Можно ли таким же образом пробросить explorer, чтобы можно было лазить по удаленной машине?

    1. Андрей

      Спасибо, Дмитрий, за благодарность. Как я понимаю remoteapp - обычный сеанс RDP, настроенный для запуска определенной программы. Собственно это можно легко увидеть, если при запуске
      remoteapp нажать на "Показать подробности". Вся необычность заключается лишь в том, что не прорисовывается весь Рабочий стол. Рассуждая по аналогии с обычным RDP: за запуск программы при старте сеанса RDP отвечает пункт политик "Запускать программу при подключении". Там говорится только про одну программу. Моё мнение - стандартными методами нельзя. Возможно существуют какие-то скрипты, информацией не владею. При этом не вижу проблемы прописать несколько программ в remoteapp, по одному ярлыку на программу. Удобство пользователя, не спорю, важная вещь, но без фанатизма, как говорится.
      "Explorer remoteapp" - это же и есть обычный режим сеанса RDP, разве нет?

  14. А есть принципиальная разница лицензировать на пользователя или на устройство?

    1. Андрей

      Вот классный вопрос. "На устройство" - действительно будет считать и записывать компьютеры и если лицензии закончатся, начнутся проблемы. По задумке MS режим для рабочей группы. "На пользователя" - может что и считается, лично не видел. Рассчитано на работу в домене, в 2003 всё ok, в 2008 всё ok, в 2008 R2 при таком типе лицензирования и рабочей группе в события заносится чисто информационная ошибка. С 2012 не работал, не могу сказать. В 2012 R2 - здесь без домена даже оснасток для управления и просмотра RDP нет, но вроде пашет.

      1. Андрей

        Да, если нужно грохнуть лицензии - останавливаем службу лицензирования, заходим C:\Windows\System32\lserver, удаляем TLSLic.edb, запускаем службу лицензирования, устанавливаем лицензии.

  15. Валерий

    Спасибо большое , очень помогло.
    подскажите как правильно сделать тоже самое только для медок ???

    1. Андрей

      Рад, что пригодилось. Принципиально никакой разницы нет, все ключи реестра те же. "IconPath" по идее можно вообще игнорировать, "Name" имя произвольно, "Path" путь к исполняемому файлу, "ShortPath" путь в формате DOS, то есть для Program Files это будет Progra~1, а для Program Files (x86) - Progra~2, ну и другие длинные пути должны быть тоже сокращены до 8 символов. Вроде все.

  16. Андрей, спасибо. Все круто.
    M$ - Я зол до беспамятства.

    1. Андрей

      Вот и славно. Тут наверное не соглашусь, 2012 R2 красивый и функциональный, а скорость работы, а возможность переходить из core и обратно? Полностью переписанный код - достаточно посмотреть какие роли доступны в core 2008 R2 и 2012 R2. Hyper-V был неплох в 2008 R2, в 2012 R2 - конфетка. Новая "религия" командной строки - пошик. Этого разве мало? Но.. MS погубит жадность. Ради интереса можно посчитать сколько же будет стоить простой двух процессорный лицензионный сервер RDP 2016 на 10 пользователей с возможностью использовать в RDP-сессии офис каждому пользователю. Какие прогнозы?

  17. Спасибо, правда с кавычками намучался. Еще хотел спросить поднял еще web доступ, так вопрос как чтобы приложения появились в разделе опубликованных?

    1. Забыл сказать, все это я поднимал на wiindows server datacentr 2016, соответственно ад не поднимал, но решил сделать еще доступ через веб

      1. Андрей

        Как показывает практика нужно 1,5-2 года подождать с момента выхода ОС, чтобы MS допилил её до кондиции.

    2. Андрей

      Веб-доступ в смысле доступ к 1С через браузер? Это имелось в виду?

  18. Артем

    Добрый день!
    Видимо из-за 64-битного R2, reg-вставка ушла в ветку WOW6432Node. Надо ли перекидывать?

    1. Андрей

      Добрый, не совсем ясен вопрос - "...из-за 64-битного R2..." - все серверные windows начиная с 2008 R2 только 64-разрядные, ничего никуда уходить не должно, тем более в ветку WOW6432Node.

  19. Здравствуйте, В Диспетчере серверов- Службы удаленных рабочих столов - Общие сведения Вижу только "Вы выполнили вход с учетной записью локального администратора. Чтобы управлять серверами и коллекциями, вам необходимо выполнить вход в качестве пользователя домена." ОС Server 2012 standart R2. Тип лицензирования "На пользователя" При этом пользователи без проблем работают в терминальном режиме, но управлять их подключениями нет возможности. Лицензии официальные. Домен не поднят (и очень не хочется его поднимать). Подскажите если знаете как решить проблему управления и наблюдения за подключенными сеансами

    1. Андрей

      Хороший вопрос. Посмотреть кто подключен можно через командную строку qwinsta /server:имя_сервера. Будут выданы столбцы: имя пользователя, id сессии, статус сессии. Отключить пользователя можно rwinsta /server:имя_сервера id_сессии. Запускать в этом случае командную строку нужно обязательно правой кнопкой мыши "запустить от имени Администратора", иначе обругает, что нет доступа. Пользователю при этом будет выдано сообщение об отключении администратором. Также для автоматизации очень поможет установка лимитов времени для бездействующего и отключенного сеансов. Взаимодействовать с сеансом пользователя можно с помощью сторонних программ, например Ammyy Admin. По поводу наблюдения - мне это неинтересно. И еще два момента: 1)установка терминального сервера без домена предполагает малое число пользователей 5-20; 2)на правильно настроенном сервере с совместимым ПО сессии пользователей не зависают. 1+2 даёт, что и вышибать-то никого не надо.

  20. Евгений

    Может кто с Mac OS X работает. Все сделал как написано, все заработало, но когда в итоге закрывает 1с то остается черный экран, далее если выйти из RDP клиента и открыть снова в RDP (RemoteApp 1c), то я вижу просто черный экран. Такое ощущение что подключаюсь к той же сессии, но 1с уже не запускается. Далее если закрыть RDP и просто подождать несколько минут, то открывая снова RDP (RemoteApp 1c) уже все нормально и так по кругу. Хочеться этот баз устранить, а то ведь пользователи будут дергать и говорить что случайно закрыл 1с, сразу открыл и черный экран...

    1. Евгений

      Проблема решена! Так происходит если конктится через клиент версии 2.1.1 или ближайших (через клиент который идет вместе с офисом для мака). Он же на скриншоте в этой статье. А вот если использовать клиент который по ссылке в этой статье (это другой клиент, не такой как на скриншоте), то все работает идеально!
      И думаю многим будет полезно убрать из настроек подключения монтирование диска, а то если не убирать, то вы предоставляете доступ к своему компьютеру всем, кто тоже подключен к тому же серверу RDP. Что бы отключить переадресацию дисков замените в файле *.rdp строку redirectdrives:i:1 на redirectdrives:i:0
      Ну а что бы дать доступ только к определеным дискам укажите их например так
      redirectdrives:i:1
      drivestoredirect:s:C:;E:;

      1. Андрей

        Админ видит все примонтированные принтеры, видят ли их обычные пользователи и можно ли печатать на принтеры из других сессий - не знаю. Все остальные ресурсы - диски, токены и звук - монтируются только в текущую сессию.

  21. Алексей

    Вчера применил данный способ на Windows Server 2016. Все завелось, только в режиме RemoteApp (только в нем) почему-то в 1С появились "залипания экрана". То есть не тормоза, а именно залипания. Ну например нажимаешь ЛКМ на крестике, закрывающим вкладку - никакой реакции вообщее, а ПКМ - Закрыть на той же вкладке, отрабатывается правильно. Тоже самое с галочками чек-боксах. Через обычный полноценный RDP - все работает хорошо, а вот через RemoteApp режим - такая хрень. Кто-нибудь знает как поправить ситуацию, а то желания сервак перелопачивать как-то нет?

    1. Антон

      На текущий момент времени (январь 2017) связка сервер-терминалов Windows Server 2016 + платформа 1C 8.3.9.2033 - не работают! Так как способы настройки и активации в 2016-ом серваке такие же как 2012, то косяк идет со стороны самой платформы 1С. Остальные приложения работают нормально, проблема только с 1С.

      P.S. Эти монополисты, за пол года, так и не потрудились сделать нормальную поддержку нового сервера MS.

  22. Денис

    Доброго дня. Настроил все из вышесказанного. Windows Server 2012, лицензии на сервере установлены на устройство, Клиентская машина Windows 10, напрямую по RDP все работает, а как с созданного файла remoteapp запускаешь, идет подмена лицензии в Win 10 и все больше не пускает, помогает только удаление ветки реестра с лицензией

  23. Виталик

    Доброго времени суток. Все сделал по вашей инструкции, но выдает ошибку такого характера : Не удалось открыть программу или файл. Возникла проблема с 1С Предприятие, или нет доступа к файлу, который вы пытаетесь открыть.
    Подскажите плиз что можно сделать ??

    1. Андрей

      Доброго, запустите полноценный RDP сеанс от данного пользователя и проверьте работу 1С.

  24. Алексей

    Доброго времени суток. Отличная статья. Огромное вам спасибо Андрей.

    А можете подсказать, как сделать окно выбора приложений при открытии, если я несколько приложений таким образом указал. Например блокнот и калькулятор.
    Если я запускаю отдельный RDP он выкидвает меня и предлагает работать в каком либо одном из опубликованных приложений.

    1. Андрей

      Доброго, спасибо. Интересовался remoteapp только в контексте 1С.
      Если нужна работа в нескольких приложениях на сервере проще и
      удобнее пользоваться полноценным сеансом RDP.

      Пробовали отключать политику?
      Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Подключения - Ограничить пользователей служб удаленных рабочих столов одним сеансом служб удаленных рабочих столов
      По идее должно помочь.

  25. Антон

    Добрый день. Спасибо за статью. А как в таком случае можно будет увидеть подключенных пользователей и отключать сеансы в случае необходимости?

    1. Андрей

      Добрый, пожалуйста. Посмотреть кто подключен можно через командную строку qwinsta /server:имя_сервера. Отключить пользователя можно rwinsta /server:имя_сервера id_сессии. Также можете поискать в интернете по тегу "shadow remote 2012 r2".

  26. Слава

    проверил на 2016 сервере, всё работает чётко! спасибо!

  27. Алексей

    Приветствую, присоединяюсь к благодарностям - работает. Единственный вопрос - файл запуска remoteapp на клиенте с Win10 отказывается запускаться - ничего не происходит, на Win7 все норм.

    1. Андрей

      Пользую Win10 уже 2 года, подобных проблем не было, если ничего не происходит нужно проверить ассоциацию .rdp с mstsc.exe.

  28. Евгений

    Андрей, спасибо за статью.
    Вопрос, у нас сервер 2012R2 без домена и как следствие нет
    Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов
    (когда пытаюсь добавить его в роли говорит что сначала создайте домен)
    Вопрос - как тогда ограничить одного пользователя одной сессией?

    1. Андрей

      Добрый день, Евгений.
      Заключение умозрительное на основании "и как следствие" или проверяли?
      Накатил виртуалку по-быстрому, там не то чтобы домена нет - вообще первое включение.
      https://arny.ru/wp-content/uploads//2018/04/938.png
      Ещё вопросы?

  29. Аркадий

    Спасибо огромное автору! Случайно вышел на эту статью, т.к. кто-то разместил ссылку на форуме MS.
    Все получилось на WS2016 Datacenter. Ради 20 пользователей не хотел домен заводить.
    Только один нюанс: если отсюда копировать текст в блокнот, то он вставляется не как тут указано. Нужно, чтобы каждый реестровый ключ был в отдельной строке. В этом случае в реестр вносятся все записи. Я даже ничего не правил под себя. у меня все совпало, включая иконку.

    Еще раз спасибо!!! Спасли))

  30. Владимир

    Андрей, спасибо за детально проработанную и практичную статью! Всё получилось на 2012 R2, 1С работает. В реестр параметры сами не все добавились, руками создал, в остальном проблем не было.
    Теперь остались две задачи: запретить пользователям запускать удалённый рабочий стол (оставив только remoteapp 1С) и запретить работу с дисками сервера всем, кроме администраторов. Не подскажете, как это можно сделать?

    1. Андрей

      Спасибо, Владимир. Насчет первого, к сожалению, не подскажу. Второе штатными средствами на закладке "Безопасность" для диска. Только аккуратно нужно. В рамках комментария, боюсь, не расскажу. В интернете много материала на эту тему.

  31. Евгений

    Здравствуйте. Подскажите как в реестре задать дополнительные параметры командной строки для запуска 1с? Например запуск определенной базы? Какой параметр реестра за это отвечает?

    1. Андрей

      Доброго времени суток, Евгений. Не знаю насколько это актуально, так как негде проверить, идея такая: создать на сервере запускной файл с параметрами, проверить, что он запускает то, что нужно, а уже для него сделать remoteapp

  32. Спасибо за статью. Все разжевано настолько подробно, что ошибиться трудно 🙂
    Все получилось со 2-го раза (1й раз сам переумничал со слэшами).
    Пишите еще!

  33. Владимир

    Спасибо за толковую статью. Все работает отлично, но: после закрытия приложения на сервере болтается отключенная сессия пользователя. Как бы ее завершать после закрытия приложения? Можно конечно ограничить время отключенных сессий через политики, но это не всегда удобно.

    1. Андрей

      Спасибо. Помню тоже с этим сталкивался, пинать пользователей чтобы они завершали сеанс а не закрывали крестиком — бесполезно. Политики, других методов не знаю. Полтора часа неактивности поставить, чтобы бухгалтерши успели съесть всё то, что они притащили из дома.

  34. Всем доброй ночи
    а как добавить такой ключ в Allowlist

    АПС-Принтер для распечатки штрих кодов

    C:\Program Files (x86)\RSPrint\PrintMon.exe /f "C:\Program Files (x86)\1cv8\common\1cestart"

  35. Слава

    Андрей, приветствую.
    прочитал статью... помогите пожалуйста советом?
    купил сервер виртуальный с Windows-Server-2012-R2-RUS
    на нём программа делать скриншоты должна 24\7
    запускаю всё - работает. как только сворачиваю в трей или закрываю удалённый доступ к серверу, начинает скринить белый фон. заходишь снова на сервер - всё работает. кучу всего почитал, вот до Вашего форума дошёл, тут хоть спросить можно. всё, что находил на форумах с похожими проблемами - мне не помогло (советы). даже пароль от этого сервера бы дал, если бы галочки нужные где поставить кто смог.
    с уважением.

    1. Андрей

      Могу ошибаться, думаю именно такая логика работы. По аналогии с записью Звук через RDP: на сервере нет звуковой карты, звук существует только в удалённом сеансе, нет удалённого сенса — нет вывода звука. Применяя на данный случай: нет удалённого сеанса, нет вывода изображения.

  36. Максим

    Добрый день! Статья ОГОНЬ!! Спасает ни один раз! Раза 4 точно! 🙂
    Но пришлось файл реестра редактировать, были проблемы с кодировкой, кавычками, новый параметр на новой строке. Тонкие настройки буду делать позже.
    Вот мой:
    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\\{C0AC3144-DCF2-4A6A-BAFE-740D2E732930}\\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"=""

    1. Андрей

      Спасибо, Максим. Ну да, статья доставила народу, как говорится.

  37. Вот добрый человек ты! Да будет тебе счастье и все в таком виде! )))) Спасибо. Это работает и реально.

  38. Антон

    Спасибо большое! Очень помогло! Только вот с иконкой что-то никак не выходит...

  39. Ярослав

    Здравствуйте.
    Спасибо за статью с 1с все получилось.
    Хотел еще добавить Консультант + но с ним так не получается (((
    Первый и третий пункт вызывают вопросы.
    Не подскажите?
    1.Путь для иконки IconPath точно будет другой, нужно найти у себя в Windows\Installer правильный путь и заменить мою комбинацию 80897B76-D827-4270-808C-C8FCD379475D на свою
    3.ShortPath - тоже самое

    1. Андрей

      Спасибо, последний раз настраивал виндусовые сервера 3 года назад и благодарен Вселенной за это 🙂 Поэтому не подскажу, к сожалению

  40. Автор молодца. И коментаторы тоже. Подкорректил . все пашет. Снимаю шляпу!

  41. Server 2016 с последними обновлениями , сдела как по инструкции запускается remoteapp и висит на Настройка удаленного подключения, хотя просто rdp рабоатет, пробовал на втором серваке с 2012 все рабоает, попросил приятеля на 2016 тоже с посл обновдениями так же не рабоает... подскажите куда компать что искать ?

  42. Халит

    Узнал об этой вещи RemoteApp недавно, вообще удобно, но вот то, что ссылки/гиперссылки обрабатываются в этом случае на самом сервере через приложения самого сервера без вариантов - это не очень удобно.
    У меня сейчас через WEB сервер Apache сделан доступ, там этой проблемы нет, но есть, конечно, свои "нюансы".

  43. ВАлерий

    Server 2016 standart, все работает, только reg-файл надо делать из какого-нибудь экспорта ветки, заменив внутренности. либо да, прописать ручками. делал в 2018 и 2023 годах.

Leave a Comment

Scroll to Top