Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am upgrading a client's 2003 Terminal Server soon and they still need to run a 16 bit DOS app. I know R2 won't support this, but would prefer to use it anyway if there was a way around it via virtualization.

Would it be possible to install a 32bit guest OS to run the 16 bit app, and have the remote desktop sessions run the app using Remote App? I've not used Hyper-V before, so am unsure about this whole area. What are the licensing requirements?

Will probably be going with a dual-proc quad-core machine, I would presume this should be more than enough to handle around 10 remote desktop sessions making use of this 32bit OS?

share|improve this question

I'm not sure if I'm reading what you're describing correctly; if you virtualize the system, you'd be running an older version of Windows within the terminal server and having them connect to that older version in order to run the app from within.

I'm not even sure it's recommended that you run virtualization within a terminal server for multiple users. Things like Hyper-V are meant to create a dedicated virtualization server (i.e., a hyper-V server running a mail server, DNS server, etc., not a terminal server virtualizing sub-sessions. That's what the Win32 sub-system is basically for).

If you're going to get the server, hyper-v it, then run a terminal server within it as a guest with an older version of Windows, I'm not sure what you're standing to gain in doing that unless you're migrating other servers or consolidating on the same hyper-v server. You'd be taking a performance hit that needs to be offset by the advantages of adding other servers to the same hyper-V server.

What you might be able to do is install virtualbox and see if you can run a version of DOS (like FreeDOS) within their session, if the application will run in it. Or an older version of DOS. You would have to test it to see if that is compatible with multiple sessions, though, as you may need to tweak access to hardware settings to make sure Windows doesn't crash or the Virtualbox session doesn't crash.

I might just be confused though. It's early in the morning right now...but depending on what you're going to be adding to the hyper-v server additionally, I'd first test Virtualbox for individual sessions.

share|improve this answer
+1; Install Hyper-V Server; two guests (the 2008 R2 TS, and a 2003 R2 TS for the 16-bit Remote App). The 2008 R2 license will cover both installs; you may have to call MS to get the 2003 install to activate. Hyper-V Server doesn't need an additional license. – Chris S Sep 7 '10 at 12:44
Just to get this straight, in this situation all my remote clients would connect to the R2 TS, and from within that session a RemoteApp session for my 16-bit app would be accessed via the 2003 TS. What about the TS CALs? The 2008 R2 RDS CALS are not compatible with the old 2003 TS CALs. – david Sep 7 '10 at 13:33
@David-You're saying you want to set up a hyper-v server and within that virtualize an older Windows that will in turn serve the application alone as a remote app to a second virtualized, updated terminal server for your users? – Bart Silverstrim Sep 7 '10 at 16:39
All that redirection you might want to just let them run it locally :-) – Bart Silverstrim Sep 7 '10 at 16:40
Surely there's only one virtualized server, the 2003 one, the main terminal server is the host OS, no? – david Sep 7 '10 at 18:28

If this is a short-term thing until they ditch the 16-bit app, you could take a look at DosBox - it's really designed for running old games but AFAIK it's a 32-bit application so could be hosted on the Server 2008 R2 machine. You'd want to check how it handles mapped drives and printing though.

share|improve this answer
DosBox is THE way to run 16-bit apps. – Nate Sep 22 '10 at 5:04

If you want to you can run a 16-bit application on a Windows 2008 R1 Terminal Server (32-bit OS). You can use 2008 RDS CALS on for this terminal server so that you can re-use them as RDS CALS in the future. You just have to figure out the restrictions of your 16-bit application. For instance, if the instance of the working directory of the application needs it's own space for each connection. I made a simple batch file that takes the connection name, takes off the first 4 characters for unique 8 character 16-bit folder naming restriction, create a working directory based on the unique name and copy the working directory to it and run the application from it. You can use RemoteApp publish a batch file that will run the routine and kick off the application in it's own working directory. I also put a check to see if it has been created already before copying the files.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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