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

1650
gparyani

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

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

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

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

Это сделало меня любопытным о чем-то ...

Мой вопрос

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

6
Похоже, вы нарушаете лицензионное соглашение, которое, по всей вероятности, не поможет вам на этом сайте. joeqwerty 10 лет назад 0
@joeqwerty Я только что получил этот вопрос из любопытства, когда получил это сообщение об ошибке. Я говорю о любой общей программе. Я ни в коем случае не пытаюсь нарушить лицензионное соглашение любого программного обеспечения. На самом деле, я читаю их и нахожу в них лазейки, которые позволяют мне это делать («вы можете установить его на одном компьютере», но он установлен только на одном компьютере, но я запускаю их только на нескольких компьютерах) , Тот, что для Office 2013, специально заявляет против этого, поэтому я не делаю. gparyani 10 лет назад 1
@joeqwerty: В соответствии с лицензионным соглашением вам не разрешается обходить ограничения или функции Windows. Работа с ошибками, таким образом, противоречит их условиям, как, например, использование утилиты поиска файлов, которая индексирует скрытые по умолчанию файлы. R0b0t1 5 лет назад 0

1 ответ на вопрос

2
marsh-wiggle

How an application can detect that it is running as a RemoteApp?

RemoteApp sessions are started on the terminal server by RDPINIT.EXE. So the application can check if RDPINIT.EXE is the parent process.

Details:

An instance of RDPINIT.EXE runs on the Terminal Server for each users RemoteApp session. RDPINIT.EXE is loaded by USERINIT.EXE as a RemoteApp specific implementation of USERINIT.EXE. RDPINIT.EXE acts as a watchdog to launch RDPSHELL.EXE and monitor process startup and shutdown. RDPSHELL.EXE is the shell that is used instead of EXPLORER.EXE to provide RemoteApp functionality. RDPINIT.EXE monitors the process lifecycle of RDPSHELL.EXE and restarts it in the event that it abnormally terminates. RDPSHELL.EXE loads a set of Windows event hooks onto each user desktop in the session. These event hooks allow RDPSHELL.EXE to monitor the state of all windows on the desktop. ...

(quoted from Technet)