How to Build a Thin Client on Existing Hardware
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.



















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.
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?
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
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?
You could use Remote Desktop? It’s built I’m to Windows.
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.
It’s exactly what I was looking for. Thanks a lot !
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.
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
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
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!
net localgroup administrators /remove viewuser
looks like /remove is not a valid option. Use /delete.