Background information

I recently installed Microsoft Office 2013 on my server to deploy using RemoteApp to all of my home computers. After installation, when I attempted to run the programs, it gave me an error that in order to run Office on a PC with Terminal Services installed, you must be using a Volume License version of Office. Then, I uninstalled all of the Remote Desktop server roles and instead deployed them manually by disabling the allow list, and it worked fine either running locally or deployed as RemoteApps.

What is the allow list?

On a normal RemoteApp deployment, there is a list of applications that are allowed to run as RemoteApps, and the only way to configure that is to use the Terminal Services server role. However, it is possible to go into the Windows Registry and disable the list so that anyone can access any application on the server as a RemoteApp by knowing the path to it, without having to install the Terminal Services server role.

This made me curious about something...

My question

Can an application detect that it is running as a RemoteApp this way (with the allow list disabled) and refuse to launch if it is, and only launch if it is running on the local server desktop?

  • It sounds like you are in violation of the EULA, which in all likelihood you won't get help with on this site. – joeqwerty Jan 27 '14 at 21:48
  • 1
    @joeqwerty I just got this question out of curiosity when I received that error message. I am talking about any general program. IN NO WAY am I trying to violate the EULA of any software. In fact, I do read them, and I find loopholes in them that permit me to do it ("you can install it on one computer", but it is installed on only one computer, but I am only running them on multiple computers). The one for Office 2013 specifically states against doing that, so I don't. – gparyani Jan 27 '14 at 22:41
  • @joeqwerty: Per the EULA you are not permitted to work around limitations or features of Windows. Working around bugs is thus against their terms, as is using e.g. a file search utility that indexes hidden by default files. – user708953 Jun 18 '18 at 1:44

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.


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)

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.