Windows

RemoteApp: Deploying applications made easy

Getting around application-overload situations doesn't have to be complicated. Rick Vanover explains the RemoteApp feature in this piece.

How many times do you log into a system just to run one application? I don’t know about you, but I’m lazy. I’d rather have that application come to me. The fact is that all applications don’t always play well together. Combine that with today’s mix of operating systems since Windows Server 2012 and Windows 8 have been released, and there are times when it's tough to run everything in one spot.

Recently, I found the RemoteApp part of Remote Dekstop Services as the tool that saved the day for me. I had an application that wasn’t ready yet for Windows Server 2012, but I didn’t want to keep transitioning from system to system. As it turns out, RemoteApp fit the need for me swimmingly.

In a nutshell, RemoteApp is an RDP connection, not to a session on a server, but allows the application to run within a session on a server. The server does need to be a Windows Terminal Server in Remote Desktop Services, but beyond that, this is a simple setup.

The RemoteApp Manager is where RemoteApp connections are made, which is a management snap-in on the Terminal Server. The RemoteApp wizard easily allows a new connection to be made, as shown in Figure A below:

Figure A

Click to enlarge.
Once the options for the application are set (if applicable), the connection easily can be saved as an .RDP file. This is an easy way to make it available from other systems, so you don’t have to make separate full-session connections to run an application. Figure B shows the option by which you would save the connection as an .RDP file (for the calculator application, as an example):

Figure B

Click to enlarge.

This opens up a world of capabilities, and can be done on scale as well. For small one-off applications that administrators may use, it’s awesome. Yet for user-based situations, you’ve got an avenue there as well. Check out the Step-By-Step Guide for more information about RemoteApp at TechNet.

Have you used RemoteApp? If so, how? Share your experience and tips below.

About

Rick Vanover is a software strategy specialist for Veeam Software, based in Columbus, Ohio. Rick has years of IT experience and focuses on virtualization, Windows-based server administration, and system hardware.

10 comments
rpriles
rpriles

Can you use this to deploy applications (ex. run an msi package on the remote server) without having to actually remote into the server in question?

R.Marshall
R.Marshall

We are currently running a trial of Remote App. The one area we are disapointed with is the time it takes to load the first application, up to three minutes, subsequent applications open very quickly. We are running on two windows 2012 servers. Has anyone else experienced this poor performance issue? How did you overcome the problem?

CdnITGuy
CdnITGuy

We currently have 2 applications servers in our organizations that use RemoteApp to connect. Our users loved this over our previous deployment of these applications over Terminal Server RDP. No more second desktop!

tlyczko
tlyczko

This would be useful if it allows 2-3 or more connections...

tpbradt
tpbradt

Absolutely, you can deploy applications. You could publish the .msi as the remote app, create an RDP file that launches it, and run that RDP. Or, for more flexibility if you have mutlple installers or multiple configurations for the same installer (as I do), then publish cmd.exe as a RemoteApp and edit properties to "Allow any command-line parameters" (assuming your server isn't exposed to the security concerns that arise). This is exactly the application that triggered my first experience with RemoteApps. We have a Windows Server 2012 integration test server running Jenkins as a service. There are obvious benefits to running it as a service, but the challenge was how to kick off unattended, GUI-dependent uninstall/installs without a desktop, not to mention Selenium GUI tests. Running Jenkins as a service, there is no desktop and a service doesn't initiate one. I did alot of research and it seemed like most people just resort to running Jenkins on a user's login. I saw one person who launched an RDP and set their install up in startup or as part of the logon process, but that's not flexible. I needed to launch an RDP and PASS IN what I wanted to run (specific install configuration or Selenium test), and I finally stumbled on the idea of RemoteApps. What a perfect solution to all my problems! I could have published my install program or AutoIt program as RemoteApps, but that seemed more unwieldy...it would have forced me to maintain more RemoteApps as I added other AutoIt exes. So I added cmd.exe as a RemoteApp and set it to allow command-line parameters. I launch my RDPs with "cmd.exe /c MyScript.cmd". The scripts make the actual calls, so I can do anything with just that one RemoteApp. Beautiful! This article relates to Windows 2008, and it's changed dramatically in 2012. Here is an article that takes you through, step by step, the process of setting up Remote Apps on 2012. Please note that the server MUST be on a domain and you must be logged in as a domain user in order to install Remote Desktop Services. You can launch an RDP as a local user and from a local user's account, but initial setup requires the domain. http://blog.concurrency.com/infrastructure/rds8-quick-and-easy-remoteapp-on-windows-server-2012/ Many thanks to Shannon Fritz for this invaluable guide. I didn't find anything else that treated this in such a straightforward manner at this time. Hi, Rick Vanover. Good to see you around in my web travels. ;-)

gechurch
gechurch

That's normal. You still log on to the remote desktop server normally, so group policy, logon scripts, security policies etc all apply. (You can actually see this happen - click the Details button while you're waiting and you'll see the logon). The only different is that RemoteApp hides this from view. Then once your app loads, you see only that app appear, and it is brought to your normal desktop instead of being shown the full server session. So - if it takes three minutes to log on to the terminal server normally, it will take 3 minutes to load your first RemoteApp. I agree that this is an annoyance because from a users perspective this is random, and they don't know why it takes so long )(three minutes without feedback is a long time). To my mind the pros of RemoteApp outweight this con. As you can see from the above the answer to your question (how to overcome it) is the same as fixing regular logon problems - don't have too many group policies, avoid loopback if you can, make sure you redirect big folders out of the user profile, buy better hardware etc. I also have generous settings around leaving disconnected sessions open to minimise the number of times a full logon is needed.

CharlesGreever
CharlesGreever

Yes, you can open multiple RDP sessions or multiple instances of one or more apps in the same session. It's configurable.

gechurch
gechurch

Nice to hear other people using RemoteApp and loving it! RemoteApping cmd.exe is interesting. Did you know AutoIt can read in command-line parameters? I think I would have gone this way instead of opening up the full cmd.exe. This way you could just RemoteApp MyAutoit.exe and pass in specific command-line parameters to it. You'd still have the same flexibility - if you ever wanted to support something new you would just need to replace the MyAutoit.exe with a new one that supports one more parameter.

gechurch
gechurch

It's the age-old trade-off: security vs flexibility and simplicity.

tpbradt
tpbradt

Good option to think about, since I've just started to use AutoIt and didn't know about that. For now I like the flexibility just running everything I need from command files, but as this evolves I'll have to keep that in mind. I'm envisioning the need for multiple, unrelated AutoIt scripts and not wanting to blend them into one like that, but that may prove unnecessary. I also have an NSIS based installer (setup.exe) that I'd have to publish as a RemoteApp, which takes as a param a config file used to run a silent install. But that wouldn't be a problem either.

Editor's Picks