Почему RemoteApp открывает рабочий стол вместо 1С и как это исправить

Системный администратор IT и автоматизация бизнеса
← На главную

В процессе эксплуатации терминальных серверов на базе Windows Server 2016 системные администраторы часто сталкиваются со специфической проблемой: при попытке запустить опубликованное приложение 1С:Предприятие через RemoteApp, у пользователя вместо окна программы открывается полноценный рабочий стол сервера. Ситуация осложняется тем, что проблема может носить избирательный характер — проявляться только у одного сотрудника из всей группы, а временным решением часто становится лишь полное пересоздание учетной записи со сменой SID. Разберем подробно, почему это происходит и как решить проблему без радикальных мер.

Анализ причины возникновения ошибки

Когда мы запускаем RemoteApp, клиент mstsc.exe передает серверу команду на запуск конкретной оболочки (shell). Если на этапе инициализации сессии происходит сбой, тайм-аут или перехват управления другим процессом, сервер по умолчанию «откатывается» к запуску стандартного проводника explorer.exe, что и приводит к появлению рабочего стола. Рассмотрим по шагам методы диагностики и исправления этой ситуации.

Метод 1. Корректировка пути к исполняемому файлу

Часто в настройках коллекции RemoteApp в качестве публикуемого приложения указывается загрузчик 1cestart.exe. Это удобно, так как он позволяет выбирать версии платформы, но иногда именно он вызывает сбой инициализации окна. Попробуем изменить настройки запуска:

  1. Зайдем в диспетчер серверов и выберем управление коллекцией RemoteApp.
  2. Изменим путь к исполняемому файлу, указав не общий загрузчик, а конкретный файл 1cv8.exe из каталога bin установленной платформы.
  3. Проанализируем поведение системы: если прямое указание exe-файла решает проблему, значит, задержка происходила на этапе выбора версии в 1cestart.

Метод 2. Точечная очистка реестра пользователя

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

Разберем ветку HKCU\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\CentralPublishedResources. Здесь хранятся кэшированные данные об опубликованных ресурсах. Если данные в этом разделе повреждены, сервер может «забыть» параметры запуска приложения.

Также стоит проверить ветку на стороне клиента (локального компьютера пользователя):

HKCU\Software\Microsoft\Terminal Server Client — полная очистка истории подключений в этом разделе часто помогает сбросить некорректные настройки сессии, которые клиент передает серверу при согласовании RemoteApp.

Метод 3. Проверка параметров среды в Active Directory

Выясним, не конфликтуют ли настройки учетной записи в AD с механизмом RemoteApp. Для этого проанализируем свойства пользователя:

  1. Откроем оснастку Active Directory Users and Computers.
  2. Перейдем на вкладку Environment (Среда).
  3. Убедимся, что флаг «Starting program» (При входе в систему запускать следующую программу) снят. Если там указан путь к какому-либо приложению, это будет конфликтовать с инструкциями RemoteApp, и сервер может выдать рабочий стол.

Метод 4. Отключение интерактивных баннеров и уведомлений

Рассмотрим ситуацию с групповыми политиками (GPO). В многих организациях настроено отображение текста приветствия (Legal Notice) перед входом в систему. В режиме RemoteApp это уведомление может не отрисоваться корректно или ожидать нажатия кнопки «ОК» в скрытом режиме. Система, не дождавшись отрисовки окна 1С, открывает рабочий стол. Проанализируем настройки GPO в разделе:

Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options

Параметры «Interactive logon: Message text for users attempting to log on» и «Interactive logon: Message title for users attempting to log on» должны быть пустыми для терминальных пользователей.

Метод 5. Оптимизация протокола RDP и отключение UDP

Современные версии Windows 10 и Windows Server 2016 активно используют протокол UDP для передачи графики. Иногда это вызывает «залипание» сессии на этапе инициализации графического окна приложения. Попробуем принудительно перевести клиента на TCP. Для этого на компьютере пользователя выполним следующие действия в реестре:


[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client]
"fClientDisableUDP"=dword:00000001

После внесения этих изменений и перезапуска mstsc.exe соединение будет устанавливаться только по TCP, что делает процесс инициализации окна RemoteApp более стабильным.

Метод 6. Использование альтернативных инструментов публикации

Если стандартные средства управления коллекциями Windows Server не помогают, можно воспользоваться сторонними утилитами, такими как RemoteApp Tool. Рассмотрим этот вариант подробнее. Данная утилита позволяет создавать .rdp файлы в обход стандартного механизма коллекций RD Connection Broker. Это помогает выяснить, не является ли причиной сбоя сам брокер подключений.

  1. Установим RemoteApp Tool на сервер.
  2. Создадим новую публикацию для 1С.
  3. Сгенерируем клиентский .rdp файл и проверим его работу под проблемным пользователем.

Метод 7. Проверка дисков пользовательских профилей (UPD)

Если в вашей среде используются User Profile Disks, проанализируем состояние файла .vhdx конкретного пользователя. Иногда диск не размонтируется корректно после завершения сессии. При новом входе система создает временный профиль или подключает старый с ошибками, что ломает логику запуска приложения. Убедитесь, что после выхода пользователя файл профиля на сетевом ресурсе не заблокирован процессом системы.

Метод 8. Настройка таймаута ожидания приложения

Выясним, не завершается ли процесс запуска по таймауту. В реестре сервера по адресу HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server можно найти или создать параметры, отвечающие за поведение сессии при отключении. Убедитесь, что параметр fQueryAppOnDisconnect настроен правильно (обычно значение 1), чтобы сервер корректно обрабатывал состояние приложения при разрывах связи.

Подводя итог, можно сказать, что проблема «вылета» в рабочий стол вместо 1С — это комплексная ошибка инициализации сессии. Рекомендуется начинать с самого простого — проверки пути к bin\1cv8.exe и очистки веток реестра CentralPublishedResources, прежде чем переходить к радикальному пересозданию учетных записей в домене.

← На главную