Может ли приложение определить, что оно работает как 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 в качестве конкретной реализации USERINIT.EXE для RemoteApp. RDPINIT.EXE действует как сторожевой таймер для запуска RDPSHELL.EXE и отслеживания запуска и завершения процесса. RDPSHELL.EXE - это оболочка, которая используется вместо EXPLORER.EXE для обеспечения функциональности RemoteApp. RDPINIT.EXE отслеживает жизненный цикл процесса RDPSHELL.EXE и перезапускает его в случае его аварийного завершения. RDPSHELL.EXE загружает набор перехватчиков событий Windows на каждый рабочий стол пользователя в сеансе. Эти перехватчики событий позволяют RDPSHELL.EXE отслеживать состояние всех окон на рабочем столе....
(цитируется Technet)