Introduction

At the company where I work we have a full VMware View infrastructure. As users were being migrated to virtual machines one after another, we ended up being stuck with lots of workstations we didnt want to put full operating systems on. Through much trial and error I created what we have affectionately dubbed, The JCOS. James Cuadros Operating System (It just sort of stuck).

So with many companies, like ours, turning towards desktop virtualization and deploying Thin Clients as terminals for users to connect to their VDI’s, you may feel you are stuck with all these extra workstations that you don’t want to put full operating systems on (as this would defeat the purpose of getting users to use their virtual machines). With this solution you can turn old existing hardware into functioning Thin Clients for your VMware View environment. I will be using Windows Thin PC as my base OS because it is way better then Windows Fundamentals for legacy PC’s since its hardware compatibility list is close to what Windows 7 is.

First off

To get a hold of a Windows Thin PC ISO you have to have a Software Assurance agreement with Microsoft. To learn more about Windows Thin PC you can read about it here: http://www.microsoft.com/en-us/windows/enterprise/products-and-technologies/virtualization/thinpc.aspx

Breakdown of System Requirements

Windows Thin PC (32-bit)
Processor 1 GHz x86 processor
RAM 1 GB RAM
Hard disk 16 GB available hard disk space
Graphics card DirectX 9 card with WDDM 1.0 driver

Install Windows Thin PC

If you have installed Vista or 7 the installation process is pretty much exactly the same. Go through your normal settings if you have them.

Set Up Windows

  • Choose a user name and name computer
  • Set up a password for the account
  • Use Recommended settings
  • Set time and date
  • Select Work network

The first thing I always do on a new system is enable remote desktop (this is optional). To do this the easiest way is to run sysdm.cpl, click on the Remote Tab and select Allow connections…

Install the VMware View Client

(Supported versions are 4.5, 4.6, 5.0, 5.1)

Enable the Local Administrator account

You will want to do this eventually. Run command lusrmgr.msc

Make sure to set a password for the account

Windows Updates

Be sure to run all systems updates and patches before going on.

Anti Virus software

It would be a good idea to install some sort of free Anti-Virus software just to make sure you have your bases covered. I recommend AVG Free edition

AVG Free Version: free.avg.com

JCOS Installation

Unzip the JCOS Installation Files [Get them HERE]

If you are like me and never open the README.txt or Instructions.txt documentation, just make sure you move the JCOS folder to the root of the C drive. This is critical.

Run Installation Script

Open the JCOS folder which is now at the root of your C: drive

Right click on InstallJCOS.cmd and Run as Administrator

A command line window will pop up briefly and begin configuring the user account and auto login. Then a window will pop up saying “Windows will shutdown in 1 minute.” – The whole process takes just a few minutes and will reboot a total of 2 times.

What it’s doing

The combination of scripts are basically creating a user account named “user” (full name “VMware View User”) with the password “user” and making that account automatically log in. In addition it is also removing the normal shell for a Windows user account, so the taskbar and icons are hidden. The last thing it does is automatically launch the VMware View client.

If you are using an imaging solution to deploy thin clients, the JCOS is Sysprep compatible. Just run the sysprep.cmd after you have gone through the Sysprep process.

End Result

Click to enlarge screenshot

Note: If the need arises to log in as the Local Administrator, hit CTRL+ALT+DEL, then hold down BOTH Shift keys and select Log off, you will be brought back to the lock screen.

Tagged with:
 

12 Responses to How to Build a Thin Client on Existing Hardware

  1. Chuck says:

    I’ve been trying to utilize thinpc as well for the same purpose but ran into an issue with multiple monitor support. Have you had any similar experiences?
    For me it doesn’t seem like Dell or ATI have released the proper drivers for the embedded OS. I have contacted them both and they said that if the windows 7 drivers don’t work then I am out of luck.

  2. James says:

    We use a dual monitor set up where I work and it has worked great so far. We mainly use Dell hardware with ATI GPU’s, I haven’t had to slipstream any divers yet to get it to recognize both displays. What model Dells have you tried?

  3. sushant says:

    Im having two pc both are connected to wifi router and i want to use second pc wireless as a thin client using the first pc resources and idea to help me

  4. Libby says:

    Will the JCOS Installation files work on a 64-bit computer? If they are designed for 32-bit, I would expect them to not work. Can they be modified to work?

  5. James says:

    You could use Remote Desktop? It’s built I’m to Windows.

  6. James says:

    I don’t see why it wouldn’t work. The JCOS install files are really just command line scripts and switches that should work regardless of the architecture. I have not tested it on a 64-bit system though so I can’t say for certain.

  7. Laurent says:

    It’s exactly what I was looking for. Thanks a lot !

  8. Joe says:

    Duuuuude this is exactly what I’ve been looking for. Nicely done and thanks for making it available!! I’ll have to let you know what improvements if any I make. I think I might try to make it an all inclusive script that can be run from a startup script via GPO, and then I can include the view client installation. :D

  9. Joe says:

    Hey there, I beefed up some of the logic you have in your UserRunOnce.cmd. I noticed that it was running for all users, and locking down some profiles unintentionally in the event a logoff/logon as a different user took place. I used a compare statement to only run the RunOnce if the user was viewuser. If it’s cool with you, I’d like to write up a blog post about how this helped me and what customizations I’ve made to it besides this.

    If “%USERNAME%” == “viewuser” (goto MakeItAKiosk)
    goto :end

    :MakeItAKiosk
    rem Since ViewUser is logged on, make it a Kiosk. Otherwise do nothing.

    regedit.exe /s C:\JCOS\JCOS-2.reg
    net localgroup administrators /remove viewuser
    shutdown.exe -r -t 15 -c “Rebooting in 15 seconds. It should be done when it comes back up.”

    :end

  10. James says:

    Hey Joe,

    Nice addition to the UserRunOnce.cmd. I myself have run in to that exact issue but haven’t looked in to correcting it. Your more then welcome to modify and repost the changes you made. My only request would be that if you could link back to this article I would greatly appreciate it. Let me know when you post any customizations you made, I would love to take a look. Thanks!

    -James

  11. Pretty nice post. I just stumbled upon your weblog and wished to say that I have really enjoyed browsing your blog posts. After all I will be subscribing to your rss feed and I hope you write again very soon!

  12. Ben says:

    net localgroup administrators /remove viewuser
    looks like /remove is not a valid option. Use /delete.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>