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:
 

27 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.

  13. Stephan Gruener says:

    Hi, this is an very nice small solution. but what if i will make changes to the thin Installation ? what can i do to get back my Standard Shell for Updates etc….

  14. James says:

    Use the trick for getting back in to the local administrator account. Log off while holding the shift key down.

  15. Rob says:

    In the JCOS script, JCOS-2.reg needs to use dwords for the Disable keys.

    replace
    “DisableTaskMgr”=”1″
    “DisableLockWorkstation”=”1″
    “DisableChangePassword”=”1″

    with
    “DisableTaskMgr”=dword:00000001
    “DisableLockWorkstation”=dword:00000001
    “DisableChangePassword”=dword:00000001

  16. Colby Zepik says:

    Has anyone made anything like this for a Citrix environment that anyone knows about? I am struggling with “locking” down Thin PC to prevent users from accessing anything but the items needed to get on the VM? Any help would be awesome. I know this vmware but I thought I’d ask. Thanks again!

  17. James says:

    Hi Colby,

    As long as the Citrix application is an executable you should be able to configure it to open Citrix instead of View. In the installation files open the “AutoView.cmd” file in a text editor. It should look like this:

    @echo off
    :View
    "C:\Program Files\VMware\VMware View\Client\bin\wswc.exe"
    goto View

    Replace the file path to the View client with the Path to the Citrix client and that should do it.

  18. Matt says:

    Did you have any issues with USB or other device (local DVD etc) passthrough? Keyboard/mouse etc worked fine but a USB device which set its self up as 3 devices in device manager wouldnt pass through correctly. Neither would the SATA DVD drive. Potentially just something I have missed

  19. James says:

    Unfortunately removing the Windows shell from the VMware View user actually disables any peripherals aside from audio.

  20. Martin says:

    Hello,
    Need some help here. I ran through the processs using the JCOS setup and it worked great, problem I am having is my “user” password expired and am unable to change it with “user” password. I get access denied. I can’t get the system to boot in with safe mode or anything. just come up to the change password screeen which is not working
    Have a few systems in this state HELP

  21. Steven says:

    Didn’t work as easy for me……
    Had to run it all manually.
    Ran the 2 reg files and checked that they did the changes.
    Then I had a problem with the password being too short. So I changed it.
    Then manually added the user.
    Then it auto booted, but logged on as user with the windows shell?
    So then I ran the cmd again under that username.
    Then it wants me to say OK to running the cmd file.

    Other than that it was quite good for me to see what settings were changed.

    Steve.

  22. Clinton says:

    Looks interesting, I was looking for a solution like this. Gonna give it a try! Thanks.

  23. Youssef says:

    it’s very helpful , i used it and it is very good

  24. Matt says:

    Thanks for this; gives us some ideas to work with. Only thing is…the shift logoff does not seem to work? any suggestions where to look? I’m running this in a VM for testing if that matters…

  25. James says:

    Hey Matt,

    Yes, actually I have had some difficulty getting this to work with remote technologies such as Console mode in vCenter and other applications like TeamViewer and Remote Desktop. I think it just has something to do with the way keyboard shortcuts are passed through.

  26. Great article! I have been doing something similar with Windows 7 (we don’t have SA where I work). Will your steps work with full-blown Windows 7 over Windows Thin PC?

    Thanks

  27. James says:

    Thank you! Yes, it will work the same on the full installation of Windows 7.

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>