Ncomputing X550 / X350 integration with VmWare View

Situation : To have Ncomputing stations connect to a VmWare View virtual desktop.

Technical Challenges : The major challenge is that the VmWare View software will only allow one instance of the program to run. There are ways around this to support the Ncomputing terminals, but they are not supported by either Ncomputing or VmWare.

Solution :

Part 1 : Understanding how to have VmWare View run multiple instances

From a command prompt, run “wswc.exe -standalone”

The “-standalone” command is unsupported; however, it is the only way to have the ncomputing terminals run VmWare View.  The “-standalone” command does not appear when running “-?” for all of the commands.

 

 

 

 

A complete list of commands is posted below :

-desktopName XXX Desktop to autostart
-domainName XXX Domain for server login
-file XXX File with additional command line parameters
-languageId XXX LCID of language to use (if available),  e.g. 0×409 for English
-nonInteractive Suppress error message boxes for fully scripted startup
-password XXX Password for server login
-smartCardPIN XXX PIN for smart card login
-desktopProtocol XXX Attempt to use the specified desktop display protocol
-desktopLayout XXX Specify desktop screen size (e.g. fullscreen, multimonitor, windowLarge, or windowSmall)
-serverURL XXX URL for the View Connection Server
-logInAsCurrentUser XXX Log in as current user (true or false)
-userName XXX User name for server login
-unattended Start in unattended mode. Connects to the entitled desktop without user interaction
-connectUSBOnStartup XXX Connect all USB devices to a desktop when it is launched (true or false)
-connectUSBOnInsert XXX Connect a USB device to the foreground desktop when the device is plugged in (true or false)
-printEnvironmentInfo Print information about the system
-rollback Rolls back a check out (need -desktopName)
-confirmRollback Confirm rollback operation in non-interactive mode
-? Show this help

 

 Part 2 : Creating a Splash Screen inside the Ncomputing terminal to allow only VmWare View to run.

If users are connecting to a virtual desktop, it advantageous to lock down the terminal so nothing can be done on the Ncomputing host by the user.  To do this, I wrote a simple program in C# to lock down the screen. It presents the user with only one button to allow VmWare View to run. Also, in order to use this the Ncomputing Vspace needs to be configured to have the custom-built program run on start-up.  Below is a screen shot of what a user would see on their Ncomputing Terminal after they have logged in.

 

 

 

 

 

Breaking down the program (in code) :

A number of security measures must be taken to prevent users from closing the program. The following code snippet prevents users from right clicking on a title bar and closing it. This also prevents the user from closing it by pressing ALT+F4

        protected override CreateParams CreateParams
        {
            get
            {
                const int CS_NOCLOSE = 0x200;
 
                CreateParams cp = base.CreateParams;
                cp.ClassStyle |= CS_NOCLOSE;
 
                return cp;
            }
        }

Also, the screen will need to be maximized to prevent the user from accessing other programs.

public Form1()
        {
            InitializeComponent();
 
            this.Bounds = Screen.PrimaryScreen.Bounds;
            FormBorderStyle = FormBorderStyle.None;
            WindowState = FormWindowState.Maximized;
 
        }

The full Code is posted below. This can be copy and pasted into a simple windows form project inside Visual Studio.

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            this.Bounds = Screen.PrimaryScreen.Bounds;
            //this.TopMost = true;
            FormBorderStyle = FormBorderStyle.None;
            WindowState = FormWindowState.Maximized;
 
        }
 
        protected override CreateParams CreateParams
        {
            get
            {
                const int CS_NOCLOSE = 0x200;
 
                CreateParams cp = base.CreateParams;
                cp.ClassStyle |= CS_NOCLOSE;
 
                return cp;
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Process VmWareView = new Process();
 
            VmWareView.StartInfo.FileName = @"C:\Program Files\VMware\VMware View\Client\bin\wswc.exe";
            VmWareView.StartInfo.Arguments = @"-loginascurrentuser -standalone -serverurl X.X.X.X ";
 
            VmWareView.Start();
        }
    }
}

Make sure to change the server url in the Arguments list to the VmWare View server in your environment.  Lastly, once the software is compiled, copy it to the NComputing host and configure Vspace on the host to have this program run on startup. Documentation for configuring “run on startup” for Vspace can be found here (page 51) : http://www.ncomputing.com/docs/guides/en/guide_X550_X350.pdf

Conclusion :

While I have tested this solution and it works, it is not recommended to run this in a production environment since the command “-standalone” is not supported by VmWare. From the tests I have run, audio and other functionality is working well. Please ask questions or leave comments on the problems or success with this solution.

About Constantine Krick

Once a teacher, now a word press blog
This entry was posted in Computer. Bookmark the permalink.

2 Responses to Ncomputing X550 / X350 integration with VmWare View

  1. al says:

    Very good,
    Multiple instance is my concern at the moment.
    Will forward your post to technician. Thanks for sharing.

  2. m0ps says:

    Interesting solution, but I wonder why there is no official solution on nComputing.
    There is a beta program for the implementation of vmware view connection broker, but it is only for l300. but we have some amount of l230, and we want to use them with vmware view

Leave a Reply

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