Solution to booting directly to Virtual Machines using thin clients

What is the best way to convert our Thick Clients to Thin Clients.  We would like to boot directly to the VM if at all possible.

We use VMware and connect to the VM's via Citrix Receiver installed on a XP box.  We would like to boot directly to to their personal desktop and not even have a local OS installed.  

Some ideas we had were using some type of PXE booting into the VM's, a Linux distribution on a USB drive or even possibly a bootable CD's.
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Andrew Hancock (VMware vExpert / EE MVE^2)VMware and Virtualization ConsultantCommented:
A few options for you to consider, that we've implemented:-

Thinstation is a basic and small, yet very powerful, Open Source "thin client" operating system supporting all major connectivity protocols

Lightweight OS for Virtual Desktops & Applications, we've used this from CDROMs and USB flash drives.

Convert PCs to Thin Clients. Save Money and Headaches
Centrally Manage User Connections, Thin Client Devices & Convert PCs to Thin Clients

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
peoplesbnkAuthor Commented:
Yes, we have tried all 3 of those but we need more details on the subject.  We keep having issues with all 3.  

Currently we are trying a program from citrix called "xendesktop desktop appliance lock" but the issue is when we log into the PC the citrix client acts as if it is logging the virtual desktop but it just says "connecting to desktop" and it never connects.

Any ideas?
Andrew Hancock (VMware vExpert / EE MVE^2)VMware and Virtualization ConsultantCommented:
"We keep having issues with all 3." could you expand on this?
10 Tips to Protect Your Business from Ransomware

Did you know that ransomware is the most widespread, destructive malware in the world today? It accounts for 39% of all security breaches, with ransomware gangsters projected to make $11.5B in profits from online extortion by 2019.

peoplesbnkAuthor Commented:
If your opinion, which solution (2x or Thinstation) would be best?  Cost isnt a big factor in our decision, we just want something that will work.

Andrew Hancock (VMware vExpert / EE MVE^2)VMware and Virtualization ConsultantCommented:
You can also use PVS servers to boot your PC's directly from a static image that autoconnects to the VM's.  

peoplesbnkAuthor Commented:
Alright, besides 2x and thinstation... what else is worth a shot?  We simply want to boot directly to our xendesktop VM's via pxe.
The only other option I have seen is to install the Receiver (Enterprise) and use PNAgent as your shell in Windows on the terminal.  It will then connect to the first available published desktop that is available.   When I had seen it done, the customer used a vbscript as the default shell, and the script would start explorer, or pnagent based on the logged in user ID.  I know it is more complicated than it sounds to build, but once it was up and running it was pretty slick.

peoplesbnkAuthor Commented:

Would I still be able to lock down the Desktop and when I shut down the VM, will the computer shut down as well?  I want this to be a seamless as possible for the client.

In theory, if you do the script correctly it will.   Because your shell is pnagent, there is really not much the user can do.

Basically, you launch the script as your default shell.
The script checks the user name and if it is administrator, it runs explorer, otherwise it runs pnagent (which in turn runs the first available desktop).
The script then checks to see if wfcrun32 is running (the citrix client runtime when it is connected) and if it isn't, it issues a logoff.  Typically, the script would check every 5 seconds.  

The other key is making sure that the shell value for the system points at pnagent.exe.  I'm not sure how that will work with future receivers (Receiver 3.x Enterprise is supposed to be the last version that contains pnagent.exe).. but at this point it works.

Now, you can have the script issue a shutdown to the terminal instead of just a logoff.  However - there is no mechanic that is going to shutdown the terminal if the vm is shutdown.. You'd have to have a 1-1 relationship between the terminal and the VM.  

It *might* be possible to use WorkFlow Studio to build something that might do that, but that's just a guess.

peoplesbnkAuthor Commented:
Thank you for your advice Coralon, do you know where I could possibly find some pre-made scripts that I can base my environment off of?  Something like a sample script that is doing what you are describing?
I wish I had done it myself, so then I would know exactly how.. I just know I have seen it done.  :-\

I remember the script to a point, but it's been a long time..  it was something like:

option explicit

dim wshShell, sUserName, cProcList, oProcess, oService, bIsRunning

set wshShell = CreateObject ("")
sUserName = wshShell.ExpandEnvironmentStrings("%USERNAME%")

if Lower(sUserName) = "user" then
     wshShell.Run "c:\program files\citrix\icaclient\pnagent.exe", 0, vbFalse
    bIsRunning = vbTrue
          '<.. not sure about the WMI code here, but should be close ..>
          set oService = GetObject ("winmgmts:")

          for each oProcess in Service.InstancesOf ("Win32_Process")
	If oProcess.Name = "pnagent.exe" then
	     'do nothing
                       bIsRunning = vbTrue

	End If

     until bIsRunning = vbFalse
     wshShell.Run "explorer.exe", 1, vbFalse

set wshShell = nothing
set oService = nothing

Open in new window

It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.