Может ли приложение определить, что оно работает как RemoteApp?

Может ли приложение определить, что оно работает как RemoteApp?

Исходная информация

Недавно я установил Microsoft Office 2013 на свой сервер для развертывания с помощью RemoteApp на всех моих домашних компьютерах. После установки, когда я попытался запустить программы, мне выдавалась ошибка, что для запуска Office на ПК с установленными службами терминалов необходимо использовать версию Office с корпоративной лицензией. Затем я удалил все роли сервера удаленного рабочего стола и вместо этого развернул их вручную, отключив список разрешений, и все работало нормально как локально, так и развернуто как RemoteApps.

Что такое список разрешенных?

При обычном развертывании RemoteApp есть список приложений, которым разрешено работать как RemoteApps, и единственный способ настроить его — использовать роль сервера служб терминалов. Однако можно зайти в реестр Windows и отключить список, чтобы любой мог получить доступ к любому приложению на сервере как к RemoteApp, зная путь к нему, без необходимости установки роли сервера служб терминалов.

Это заставило меня кое-что заинтересоваться...

Мой вопрос

Может ли приложение таким образом определить, что оно работает как RemoteApp (с отключенным списком разрешенных приложений), и отказаться от запуска, если это так, и запуститься только в том случае, если оно работает на локальном рабочем столе сервера?

решение1

Как приложение может определить, что оно работает как RemoteApp?

Сеансы RemoteApp запускаются на терминальном сервере с помощью RDPINIT.EXE. Таким образом, приложение может проверить, является ли RDPINIT.EXEродительский процесс.

Подробности:

Экземпляр RDPINIT.EXE запускается на терминальном сервере для каждого сеанса RemoteApp пользователя. RDPINIT.EXE загружается USERINIT.EXE как специфичная для RemoteApp реализация USERINIT.EXE. RDPINIT.EXE действует как сторожевой таймер для запуска RDPSHELL.EXE и контроля запуска и завершения процесса. RDPSHELL.EXE — это оболочка, которая используется вместо EXPLORER.EXE для обеспечения функциональности RemoteApp. RDPINIT.EXE отслеживает жизненный цикл процесса RDPSHELL.EXE и перезапускает его в случае его аварийного завершения. RDPSHELL.EXE загружает набор обработчиков событий Windows на каждый рабочий стол пользователя в сеансе. Эти обработчики событий позволяют RDPSHELL.EXE отслеживать состояние всех окон на рабочем столе. ...

(цитата изТехнет)

Связанный контент