# WineX - connecting from Windows PCs to Maths machines

Version 2.245 of Winex is the last release, support will stop after the 29th February 2020.  Winex is being replaced by 'Hotdesk', a means where you can connect to a Maths Windows or Linux computer via your web browser from anywhere in the world.  Hotdesk is the Maths service name for the real product that is called Apache Guacamole (https://guacamole.apache.org/ ).

To connect to a Maths computer, go to https://hotdesk.maths.cam.ac.uk/#/  , log in and search for the computer you wish to connect to.  If Hotdesk does not fulfil your needs please email help@maths.

## What is WineX?

WineX is a small program that is written in-house. Its aim is to allow people who use Windows computers to make graphical connections to UNIX hosts within MATHS (an X session, like that at the console of a Unix computer) and to the MATHS Windows Remote Desktop Services (RDS) server (basically a Maths Windows computer). This replaces old attempts to provide this functionality via Exceed and CygwinX.

## Unix X Environment (Windows to Linux)

WineX uses VNC technology to connect the Windows pc to remote hosts running VNC Server over ssh - Unix hosts. Type in the name of the host you wish to connect to. Pressing the "info" button after selecting a host will display a balloon in the task bar with more information on the selected host including its CPU type and specs.

The window manager should generally be set to Xubuntu, but users with customised X setups may do better with 'User Script (xinit-compat)'.

The interactive autogenerated list of hosts from which WineX gets its information.

## Remote Desktop Services (Windows to Windows)

### Why is this useful?

Why would you want to connect to the Maths Windows server when you are already working on a Windows computer at home?

• To run applications such as Adobe Acrobat Pro which may not be installed on your home computer.
• To be able to print files on your N: drive to your home printer and local files to the Maths printers. (Note: be sure to tick the boxes to allow your local disk and printers to be shared with your remote session.)
• To have the same work environment at home as on your Windows computer in the CMS.

### How does it work?

WineX uses MS Windows 'Remote Desktop Connection' to connect to the MATHS Remote Desktop Server running Windows Server 2008R2 using RDP. The server is called rds.maths.cam.ac.uk.

Note: The RDS service is run by two computers called rdsone.maths.cam.ac.uk and rdstwo.maths.cam.ac.uk. Connections to rds.maths will be directed to one of the two computers in a round-robin. If one of these computers is out of action then try connecting to rdsone or rdstwo by name.

Remote Desktop Services is like running a Maths Windows setup from anywhere in the world over a secure SSH 'tunnel'. To make this secure tunnel you need to know your Maths Unix password. Once connected, you will see a typical Windows login prompt. Enter your Maths Windows password to log in.

### How to connect

First, you need to know:

4. The name of the Remote Windows server = RDS

Once you have all of this information, start WineX and select the tab titled 'Win Remote Desktop Service (RDS)'. Enter your CRSid in the top left box, enter your Unix password in the box to the right of your CRSid box. Enter 'RDS' in the box with the text 'Remote PC name to connect to:'. Select the colour depth (highest should be fine for most people). Select the screen size of the remote Windows session. Then tick the box 'Printers' if you want to see any printers that are connected to your home pc/laptop in the remote Windows session. Do the same for 'Drives' and 'USB' if you want to see files on your home pc/laptop hard disk or plugged in USB devices in the remote session. Select the option for the type of network you're working on and then press the OK button.

The first time you attempt to connect to the RDS, a dialog box saying that "The publisher of this remote connection can't be identified" will pop up. Tick "Don't ask me again for connections to this computer" before clicking Connect. Unless you are very quick this is likely to fail, in which case, simply click OK in the previous dialog box again.

After a few seconds you should see a new window appear that looks like a Windows login screen. When you get to this point, the SSH tunnel has been created and you are looking at the login screen of the remote Windows server. Click the icon (called a 'tile' in Windows speak) with your CRSid on it and then enter your Maths Windows password. (If you need to log in as a different Windows user then click "Other User".) Once logged in, a number of applications will start including the option to install printers within CMS.

Information about the last entered username, the host they connected to and the UNIX window manager used are stored in the registry and read back into WineX the next time the user starts the program. The registry key is;

HKEY_CURRENT_USER\Software\WineX


If things go wrong or you get errors you don't normally see, WineX has the option to run in debug mode. When in debug mode, it logs a load of information to the file C:\users\{your username}\winex_debug.txt. This file contains all the information from past debug runs, the latest debug information will be at the end of the file. To run in debug mode, run Start Menu -> All Programs -> WineX -> Extra -> WineX - run in debug mode. A message window will appear telling you that the log file will be displayed when WineX closes, it also shows you the name of the log file. If you are having problems and want to email help@maths about the problem, please run WineX in debug mode first and cut-n-paste the debug information (at the end of the log file) into your email. If you run WineX from the command line, add the argument '-debug' to run in debug mode.

WineX has a number of other command line arguments, there are Start Menu equivalent shortcuts. Currently there are the following:

• -vncss {vnc startup script path} = script to pass to vnc on remote unix host
• -std_logfile = Open up the STDOUT log file (Start Menu = 'WineX - open STDOUT log file')
• -winex_logfile = Open up the winex history log file (Start Menu = 'WineX - open WineX history log file')
• -debug = Runs in debug mode (Start Menu = 'WineX - run in debug mode')
• -default_putty = Temporarily move the Putty session registry keys while WineX runs (eliminates any stored Putty sessions causing WineX to fail unexpectedly) (Start Menu = 'WineX - ignore any existing Putty sessions')

The option '-default_putty' is particularly useful if you are having trouble ssh'ing to create the secure tunnel. To make the ssh tunnel, plink.exe is used, plink is part of the PuTTy suite. If you've created any sessions within PuTTy that contain private SSH keys or special commands to run to certain hosts, WineX may fail with odd results. As plink knows about PuTTy's session settings it will use them and these may cause the secure tunnel to break. By running WineX with the 'default_putty' argument, any PuTTy sessions are temporarily moved out of the way, plink.exe runs, create the secure tunnel, WineX them continues to connect to either the Windows Server or the Unix host, when you finish using WineX, the original PuTTy sessions are moved back and everything carries on as before.

## Version information:

13/1/20 = v2.245. Updated to allow the use of maths.cam.ac.uk machines like RDSTHREE and RDSINI

22/3/19 = v2.244. Fixed a bug when waking PCs. Also updated the URL used for WOL'ing. Updated version of plink.exe

29/11/18 = v2.243. Fixed a long standing bug where the colour depth resorted to 8 bit (poor quality) when connecting to a remote Windows desktop. An old version of Winex allowed users to select the colour depth, this was removed when broadband speeds increased making this speed saving option redundant.

27/11/18 = v2.242. Changed how Unix hosts names are entered. The old method of downloading a list of Unix hosts in particular Unix groups has been removed, replaced by a simple box for the user to type in the machine name. A web link to the Computer Table on the Maths website has been added so users can choose a machine name from the list of machines they are allowed to connect to.

31/3/17 = v2.241. - Changed some of the 'Windows Remote Desktop' tab, removed local devices and network speed options and replaced it with a 'Remote App' dropdown menu allowing users to run just a single application instead of a full blown session.
- The installer file now includes the version number.

28/1/16 - v2.240. - As the Maths websites are now all https the web links used by Winex also needed changing to https - done in the winex.ini file.

27/1/16 - v2.239. - Due to the www.maths webserver moving to a new home, the URLs hard coded into winex.exe now don't return as expected, the wget doesn't follow redirects. To fix this and to stop this problem occurring again in the future, the URL's are now in an .ini file that can easily be changed by anyone with local administrator rights on a PC with Winex installed.

2/12/15 - v2.238. - Added support for high definition screens.

2/2/15 - v2.237. - When Winex starts, it will look for any alerts that should be displayed to the user, i.e. if one of the RDS servers is down.
- Allowed a unix connection to ssh.maths. This used to fail because ssh.maths isn't a single machine therefore no info could be obtained for it. As of 12th Jan 2015, ssh.maths machines are now running ubuntu therefore the xubuntu window manager would work so we need to allow people to connect to ssh.maths without checking what window manager they have chosen.
- Added a check to see if other required exe's are in place in relation to WineX.exe. This is to stop Winex from failing to run when just the WineX.exe file is downloaded and run from wherever the browser chose to download it to.

10/11/14 = v2.236. - Fixed nslookup for maths.cam.ac.uk unix hosts.
- Added Xubuntu window manager to allow connections to Maths Ubuntu Unix hosts. Ubuntu is being installed as the standard Linux install at Maths as of November 2014.
- Upgraded VNC Viewer to v5.2.1.

1/8/14 - v2.234. - Allows the ssh port to be set in the ini file. Usefull for people who work on networks that block port 22

14/3/14 - v2.233. - Improved password escaping. Removed Goldlab code, the vlan doesn't exist anymore.

5/11/13 - v2.232. - Removed the requirement to specify which department users work in. As there's now an ssh.maths.cam.ac.uk, everyone can use this when settings up SSH tunnels for RDP traffic.

11/10/13 = v2.231. - Added some more debugging lines to log what version of WineX is being run, what department the users says they're in and the url of the ssh reg key file they download. Also made Windows 8 more happy with registry imports.

26/7/13 - v2.230. - As a result of all the DAMTP, DPMMS and Statslab Unix computers now all running the same version of Linux - SL6, users can now select a Unix computer from whatever Unix groups they have permission to log into. DPMMS and Statslab are treated as another Unix group and are listed in the list of Unix groups users can select. Selecting one or more of these groups will download the list of all Unix computers in that group(s). Users are able to view the hardware specification of a DAMTP, DPMMS and Statslab Unix computers once it has been chosen from the drop down list.

23/7/13 - v2.229. - An additional command line argument and Windows Start Menu item has been added, '-default_putty'. Sometimes a user has configured a Putty session to include a private SSH key or for a session to run a command every time it connects, this can sometimes confuse WineX and stop it functioning correctly without giving much information back as to why it failed. By running with the new argument, any existing Putty sessions and temporarily renamed while WineX runs and then moved back when WineX closes. All of this happens in the registry and eliminates the user from needing to poke in the registry themselves.

26/6/13 - v2.228. - More changes have been made to WineX as a result of the Statslab Linux computer now running SL6. It is now possible to Wake sleeping SL6 machines. WineX also works better with Windows 8

23/5/13 - v2.227. - A large number of changes have been made to make WineX work with the new Maths SL6 UNIX system. UNIX is used for both the Remote Desktop connection and the UNIX X connections. A number of changes have been made in versions of WineX 2.224 to 2.227. 2.227 is currently the stable release until all SL5 machines have been reinstalled with SL6, at which point a new version of WineX will be released. Connections to DPMMS SL5 computers is not supported.

12/1/12 - v2.223. - Improved the drop down menu of previously used Terminal Server host names, alphabetically sorted. Added colour depth options when connecting to Unix host - improves usage when on slow networks.

28/7/11 - v2.221. - When running the 'connect to Unix' option, the cpu usage was high ~8%. A small change to code seems to of fixed this, hopefully

2/6/11 - v2.220. - Now able to save and import sessions (UNIX and Terminal Server) to a config file. These files can be double clicked to automatically launch WineX with your pre-set settings. Now able to set any size of Terminal Server or Unix window.

26/5/11 - v2.219. - Added the option to connect to Statslab UNIX hosts including the function to download a list of available UNIX host names. Added more debugging options. Improved SSH public key download code. Allowed the function to save your 'last connected to' UNIX names in the drop down list.

21/3/11 - v2.218. - Fixed a issue whereby the nslookup of the remote Terminal Server returns a reversed IP address.

4/1/11 - v2.217. - Fixed a small problem when connecting to a Terminal Server whereby mstsc.exe wasn't being detected properly in Windows7.

18/11/10 - v2.216. - Fixed issues with some passwords not being accepted for Terminal Server connections - passwords with a space in them. Integrate Pageant into how the program authenticates back to MATHS. Help button now opens a Windows help chm window.

WineX is written and supported by Chris Mortimer - cm214