Education and the Cloud

September 17, 2012

HowTo – Integrate Windows Apps into the Ubuntu Linux Desktop using Windows RemoteApp

HowTo – Ubuntu and Windows RemoteApp Use Guide

By: Brian Mullan  (bmullan.mail@gmail.com)

August 2013

Note:  update from the WinConn app developer…  good news !

I had sent Alex Stanev, the developer of WinConn an email some time ago asking about the possibility of getting WinConn updated for the release of Ubuntu 16.04LTS in April 2016.   Alex has done the upgrade/update and you can read the email below to find out where/how to install the new WinConn so it will work with the newer Ubuntu versions.

                                          = = = = = = = = = = = = = = = = =

Hi,
I’ve moved winconn to github:
https://github.com/RealEnder/winconn

With this version, I’ve moved to new xfreerdp commandline options and fixed dependencies.

Generally, you can build it with:

git clone https://github.com/RealEnder/winconn

then:

cd winconn
dpkg-buildpackage

If you have dependencies needed (it should cry for them), you’ll have the .deb packages built successfully and installable. This works with 15.10, but should work with other versions also.

The problem here is with current freerdp (2.0.0-dev) they have RemoteAPP regressions – partial window shown, window froze and etc.

Please let me know If you have stable RemoteAPP functionality with concrete freerdp version. There are bugs submitted against freerdp, I’ll keep checking their status.
Any dev  help with winconn is welcome.

Cheers!

Alex

= = = = = = = = = = = = = = = = =

Note:  updated April 2015 – RemoteAppTool now supports  Windows 7 Enterprise -or- Ultimate, Windows 8 Enterprise, Windows XP SP3, Windows Server 2008 and newer!

Preface:

A “How-To Guide” about going beyond WINE’s capabilities to enable a clean integrated Linux Desktop with all of the “necessary” Windows applications you still require or can’t live without.

Note:   Because I use Ubuntu, in this guide I reference Ubuntu as my linux system.   However, using the same approach in any Linux Distro should work the same !   

What is the Problem we are trying to Solve

I like many Ubuntu users are still saddled at times with the need to run that one or two critical Windows-only software that just cannot be made to run correctly in WINE.

Of course we all know we can use virtualization like KVM or VirtualBox to install a Windows operating system and then install the needed Windows application(s) there.

But that only presents us with another set of problems:

  1. You are running the Windows OS as a VM and thus see the whole Windows Desktop presented to you which in my mind at least clutters up my desktop… just for access to your needed Windows applications.
  2. Without resorting to installing/configuring something like CIFS/NFS/SAMBA there is no convenient way to share/exchange data/files created in the Windows Application with your Ubuntu applications or vice-versa.

This article is being written to describe what I think is a very nice working environment that addresses this problem and may introduce you to several technologies that you will find interesting in other ways.

My own problem Windows Application happened to be a great MindMapping tool called ConceptDraw  which is part of an integrated suite called ConceptDraw Office.

ConceptDraw Office is only available for Windows and Mac OS.

I’ve purchased and use the great CodeWeaver’s Crossover Ubuntu WINE environment.   CrossOver allows you to install many popular Windows applications and PC Games on your Ubuntu PC.

While Crossover let me easily install Microsoft Office into my Ubuntu system there are some applications that it still cannot help run fully/correctly in Ubuntu.

For me, one of those was ConceptDraw Office.    Using CodeWeaver’s CrossOver application I could successfully install ConceptDraw Office and 2 of the 3 applications in the Suite worked flawlessly (Project Manager and the Visio-like Designer).

However, the ConceptDraw MindMap application installs okay and all the menu’s were correct BUT… the mindmap drawing surface just would not correctly render the mindmap images correctly no matter what I tried so the…  Mindmap application was unusable and useless to me.

As I really like using that Mindmap tool for brainstorming new projects like integration of applications into cloud environments (AWS or OpenStack),  I wanted to have the Mindmap available to me on Ubuntu without resorting to booting Windows or being forced see the entire Windows desktop in a VM or separate PC… just to use the one application.

So I came up with a very usable solution which I’d like to share.

This guide explains what I did and how it was done so others might benefit from it as well.

Where to Start

This approach does not eliminate the need for a VM but it will make your Ubuntu desktop and working environment much more nicely integrated with the Windows Applications you need.

In my solution that I will present I will be using several technologies:

  • KVM (VirtualBox is certainly an alternative)
  • FreeRDP (opensource Ubuntu tool that supports Windows RemoteApp and RemoteFX)
  • Windows 7 Enterprise -or- Ultimate, Windows 8 Enterprise, Windows XP SP3, Windows Server 2008 and newer.
  • Microsoft’s RemoteApp capability

It is a assumed you have a working Ubuntu desktop environment and KVM installed.

Using your (licensed) CD or .ISO file copy of one of the above required versions of Windows, create a new KVM virtual machine and install Windows into it.

When you create the VM you should probably size it for:

  • minimum of 30-35GB disk space
  • initially for 2 CPU (if you can) which after installation you can reduce to 1 cpu.
  • I’d recommend giving that VM an initial 3074MB of RAM (again if you can)

All of the above is to simply to make the Windows installation go quicker.

Note:  some of the Windows specific steps below are assumed to be known by you already.   You will also either need to make your account Admin capable or have a separate Admin account you can access.

After you have Windows installed in the VM the fun part of this begins.

Steps to do in Windows  (screen shots are from Windows 7)

Create a User account for yourself in Windows

  1. Click on Start
  2. Right-Click on Computer
  3. Select & click on Properties

After clicking on Properties you will see the following menu on which you need to select/click-on “Remote settings” in the upper-left.

On the next screen that is presented click on the Tab labeled Remote.

Then select the option:

 “Allow connections from computers running any version of Remote Desktop (less secure)”

Click on the “Select Users” button and you will see this menu screen.

Next, click the Add button and in this menu enter your Windows 7 UserID.

Click Check Names.

Click OK to return to the previous menu and you should see your Windows UserID now listed as authorized for Remote Desktop.

Click OK to save this UseriD as a user allowed to use Remote Desktop.

Now we can start some of the interesting configuration for Windows.

Note:  The reason why it must be a Windows 7 Ultimate or Enterprise version is that both of those are “capable” of supporting Microsoft’s RemoteApp as a “RemoteApp Server” but unfortunately Microsoft  made the decision to not make that capability readily useable.

Some very smart Windows users/programmers figured out how to turn on the RemoteApp server capability in Windows.

They have also made it almost painless by creating a very nice GUI interface to “Publish” RemoteApps from Windows.

Enabling RemoteApp Publishing on Windows

You must make sure that you have Microsoft’s .NET installed on your Windows VM ….   if it is not already.

A google search for “Microsoft .NET” should give you multiple hits where you can download and install .NET into your Windows VM.

Do this now !

Next we need to download the GUI based tool that will not only enable RemoteApp publishing on the Windows VM but will also let you Publish … ANY…  Windows Application you install onto that Windows VM as a “RemoteApp”.

A person named Kim Knight built a GUI based application called RemoteAppTool that you can download from here:

http://www.kimknight.net/remoteapptool

Download and Install the RemoteAppTool into your Windows Virtual Machine (VM).

Note:  The RemoteAppTool requires .NET which is why we did that step first.

After installation of the RemoteAppTool you need to start installing your Windows Applications that you will want available on your Ubuntu system.

Do those Application Installations now !!

Publishing a Windows Application as a RemoteApp using RemoteAppTool

Now that you have installed all of the Windows Applications you want access to the next step is to “publish” them as RemoteApps.

Right-Click on the Windows Icon for Kim Knight’s RemoteAppTool program and select to start it as an Administrator.

Note:  this is why you need to be an Admin or able to log-in as an Admin on the Windows VM

After the RemoteAppTool starts you will see its GUI Menu.

Click on the “New” button

Enter any meaningful name for your RemoteApp

At the next screen (RemoteApp Properties Entry screen)   click on the 3 dots (…) to the right of the PATH entry which will bring up Windows Explorer.   Use Explorer to search your system for ANY application you want to associate with this RemoteApp “name”.

After you double-click on the .exe name of the Windows program you want to make a RemoteApp… all the rest of the fields in the RemoteAppTool menu should be filled in automatically.

When the form is complete REMEMBER to Click SAVE !

NOTE:  Once you click  SAVE your application is available from the Windows 7 VM as a Windows RemoteApp !

Now we need to go back your your Ubuntu desktop so leave your Windows 7 VM running but just minimize it off of your Ubuntu desktop.

Note:  As I’d mentioned earlier I have tested and used RemoteAppTool on Ubuntu 12.04 LTS and 12.10, Ubuntu 13.04, Ubuntu 14.04 LTS.

Install the Applications enabling use of Windows RemoteApps from the Ubuntu desktop

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license.   FreeRDP is primarily the work of  Marc-André Moreau  who on January 16, 2012 announced  the stable release of FreeRDP 1.0 for Ubuntu but FreeRDP may have have also released newer versions.

Note:  FreeRDP can also be used on Mac OS and Windows clients also to connect to Windows Servers !

FreeRDP v1.x can be downloaded here.

You will only need to do this if your Ubuntu Distro does not have it available or you want the latest version of FreeRDP.

FreeRDP’s Key Features:

  • RemoteFX
    • Both encoder and decoder
    • SSE2 and NEON optimization
    • NSCodec
    • RemoteApp
    • Multimedia Redirection
      • ffmpeg support
      • Network Level Authentication (NLA)
        • NTLMv2
        • Certificate validation
        • FIPS-compliant RDP security

Note:  the 2 key features (my opinion) are the support on Ubuntu for RemoteFX and RemoteApp.

If you are unaware of what RemoteFX or RemoteApp do in a Windows architecture see these referensce:

For RemoteApp:  

        http://technet.microsoft.com/en-us/library/cc755055.aspx

For RemoteFX:    

        http://technet.microsoft.com/en-us/library/ff817578%28v=ws.10%29.aspx

        http://blogs.technet.com/b/virtualization/archive/2010/03/17/explaining-microsoft-remotefx.aspx

So check NOW your distro’s Repository to see if FreeRDP is there and  it is at least v1.0 !

Note:   For this Guide to work the repository must have at least version 1.0 of FreeRDP.   

If the repository does not yet have at least v1.0 then you may have to download the source and build and install FreeRDP yourself.

NOTE:   In Ubuntu 14.04 (which I use) the FreeRDP in the Repository is v1.02 which works with this process!

Install FreeRDP now!

Now that you have FreeRDP installed you are ready to run one of the Windows RemoteApp programs you previously configured.

FreeRDP itself is a command line tool and obviously you “could” run one of your Windows RemoteApp’s using a command line such the examples on the FreeRDP Wiki:

      https://github.com/FreeRDP/FreeRDP/wiki/RemoteApp

As they those TV Ads we all love late at night  say —   “But wait … there’s more”.

There was recently released an open source GUI application that makes running RemoteApps via FreeRDP almost too simple.

This application is called WinConn.

WinConn simplifies creation, management and desktop integration of remote windows applications in Ubuntu.  WinConn uses RemoteApp technology, implemented by the FreeRDP Project to provide a seamless user experience with Windows Applications on your Ubuntu system.

Each RemoteApp application runs in its own “window” on your Ubuntu Desktop.

This means the RemoteApp application can be used like any other locally installed Ubuntu application, without bringing the full windows desktop to the user.

You can download WinConn from the website:     http://stanev.org/winconn/

NOTE:  WinConn’s Launchpad PPA has not been updated beyond Ubuntu 12.10 (re Quantal release)!  So to use the PPA on a newer version of Ubuntu (13.04, 13.10, 14.04 etc) you will have to edit your /etc/apt/sources.list file and manually add the following 2 lines of text entry:

      deb http://ppa.launchpad.net/realender/winconn/ubuntu <your ubuntu version here – example = trusty> main
      deb-src http://ppa.launchpad.net/realender/winconn/ubuntu <your ubuntu version here> main

Save the edit of the /etc/apt/sources.list file and then do:

      sudo apt-get update && sudo apt-get install winconn -y

WinConn simplifies use of FreeRDP without resorting to the Command Line Interface.   It makes it easy to not only run your RemoteApps but also to specify a local “shared” directory where your Windows application can push/pull documents or files to/from your Ubuntu environment and those Windows applications.

So Let’s see a Movie and All of this in Action

Although I “could have” done a short video from my own Ubuntu desktop I’m basically lazy.

So I’m just going to show you what this Guide is all about….  via an existing Video which had been produced by Alex Staney (WinConn)  and posted on Vimeo.

IMPORTANT NOTE:  

The following video is an Ubuntu 12.04 Desktop PC running WinConn to present RemoteApps published from a WINDOWS 2008 server.

What this guide has been all about is accomplishing the very same function but instead of a Windows 2008 server publishing the RemoteApps you want to use this Guide shows you how to use a Windows VM to do the very same thing with the same if not better performance  !!

I did this because its more likely that people have a Windows 7 or WinXP license than an Windows 2008 server license handy.

Watch the following Video from  Alex Stanev demoing the WinConn RemoteApp manager on an Ubuntu 12.04 desktop:

http://vimeo.com/44984895

Ways to make this even more Productive

Up until now we’ve only discussed how you can make any Windows Application a RemoteApp and then run those apps in their own “window” on your Ubuntu desktop without seeing the whole Windows desktop.

There is a way to make this even more productive for yourself and actually avoid having to setup each and every Windows Application as a RemoteApp.

How do you do that?    Well, a unique capability of this approach  of using RemoteApp is that if you were to setup the Windows Explorer program itself as a RemoteApp and publish it then when you run it (using FreeRDP or WinConn) you will see Windows Explorer appear in its own window on your Ubuntu Desktop.

One capability that Windows Explorer brings to the table is that in Windows itself it allows you to find an executable .EXE program, .BAT batch file or .COM file and just click on it to run that program.

So as I’d said earlier … I’m basically a lazy kind of guy so if I can keep from doing extra work by doing something smarter, all the better.

So lets setup Windows Explorer, publish it as a RemoteApp and then run it.

RemoteAppTool First Use Screen with No RemoteApps

First we log back into our Windows 7 VM and again start the RemoteAppTool application (as Administrator).

Next click on the Create New button and and enter the form’s fields to begin the process of specifying Windows Explorer (explorer.exe)… as a remote app.   We’ll explain why  we pick Explorer.exe later.

remoteapptool new entry screen

    After entering a name for our RemoteApp (note: this “name” can be anything that is meaningful to you)… click OK.

RemoteAppTool New App Properties Entry Screen

RemoteAppTool New App Properties Entry Screen

Now to the RIGHT of the “PATH” entry there are 3 dots (…) – Click on those 3 dots.

This will bring up explorer and allow you to search on your system for the program you want to make a RemoteApp.

In our case we want to actually make Explorer.exe itself a RemoteApp so you can Click on Computer, Click on C: drive, click on Windows, then scroll down until you see explorer.exe then double-click on it and it will be added to the RemoteAppTool screen entries for you.

-OR-   you should be able to actually enter exactly what I have in this picture as  all Windows systems use the same %windir%  variable to specify where the location where Windows system applications live (%windir% =  the c:\Windows directory) where explorer.exe is located.

When you are done completing this form…  again, remember to hit “Save”.

Now you have published Windows Explorer (explorer.exe) as a RemoteApp !!!   Its that simple with RemoteAppTool.

Let’s go back to the Ubuntu desktop.

Now let’s create some directory in your Linux system that you might use for any and all exchange of files to/from Ubuntu and Windows 7.    If not in your home directory or “Documents” directory make sure you have READ/WRITE privileges to wherever you create it.

Let’s use /opt and so we remember what this directory is for lets just call it “win-share”.   Since we are using /opt you will have to use “sudo” to give you the permissions to create the new directory and to change its permissions for access.

$ sudo mkdir /opt/win-share

$ sudo chmod 777 /opt/win-share

and then start WinConn up again.

This time lets configure just a single entry for the explorer.exe   RemoteApp we just published.

!! Remember to click the Save button !!

Now before you exit WinConn lets do one more thing.

Click on the little menu Icon

If you just hover your mouse over it on the WinConn menu you will see that it lets you create a Ubuntu Desktop Launcher.

Let’s do that now !

After you’ve done this you will see a new Launcher Icon on your Ubuntu Desktop which is labeled appropriately enough… Windows Explorer.

If you’ve followed all these steps so far all you have to do now is click on that Icon to bring the Windows 7 – Windows Explorer (explorer.exe) onto your Ubuntu desktop in its own window which you again can resize, minimize etc.

I am going to assume everyone has used Windows Explorer so after it appears on your Ubuntu Desktop use Explorer to search for some other Applications you’ve installed on Windows 7 and click on any of them just as if you were in Windows itself.

Voila…

You will see the application you clicked on also appear on your Ubuntu Desktop and because you previously configured /opt/win-share and made it accessible you can use any application now and save or open files in the /opt/win-share directory.

NOTE:   if your application does not appear the Windows Ultimate or Enterprise edition installation “may” need a extra entry put into the Windows Registry using the “regedit” tool.   You may also see an error if you use FreeRDP from the command line that says:      error: RAIL exec error: execResult=RAIL_EXEC_E_NOT_IN_ALLOWLIST NtError=0x15

To fix this problem do the following simple steps MAKING SURE to follow them all.

  1. On your Windows 7 virtual machine, run Regedit from the “command bar” on the lower left side of Windows.
  2. When Regedit pops up, start clicking down the following path HKLocalMachine\SOFTWARE\Policies\Microsoft\Windows NT (re click HKLocalMachine, then click SOFTWARE, then Policies etc)
  3. once you are at Windows NT — check to see if  there is an KEY entry alrea dy named “Terminal Services” beneath it… if there is NOT then do steps 4 & 5.     If it already is there skip to step 6
  4. Right Click on Windows NT, select/click on NEW and then select KEY (note:  this will create a new “key” entry box underneath Windows NT 
  5. Change the name of that new KEY to “Terminal Services”
  6. Click on Terminal Services
  7. In the right hand window of Regedit “right click” add a DWORD 32 entry
  8. Under that, add a DWORD32 value named “fAllowUnlistedRemotePrograms” and set the value to 1

When you are done your Regedit screen should look like the following:

Regedit entry to fix problem with FreeRDP execution of RemoteApp ending in error15

Regedit entry to fix problem with FreeRDP execution of RemoteApp ending in error15

Now you are ready to try all of this out.     in WinConn double-click on the entry for Explorer and you should see your Windows Explorer pop up in a Linux Window all by itself (re without the rest of the Windows Desktop)

If you use Windows Explorer to find and launch the Microsoft Paint program (mspaint.exe) Explorer you will see something like this… with my great artwork

If you Click on the Paint program button that looks like a Floppy Disk you will see the “SAVE” AS menu appear.

Click on the “file sharing” directory we created earlier in /opt.

Note: Because we are using WinConn it will appear as a folder called something like:

            “winconn-on-”. 

In my case, the shared directory name is going to be labeled in the Windows Save AS menu in the left panel as:

“winconn on ubuntu-2tb”   … is called “ubuntu-2tb”

Why… because my Ubuntu system’s hostname is “ubuntu-2b”

Enter the File Name (My Cool Beans drawing) and Save as type (I chose JPEG) then click on the Save button.

Now go back to your Ubuntu desktop and click on Nautilus (in Ubuntu) or whatever file manager tool you use and go to the /opt/win-share directory and will now see:

Since we are on our Ubuntu system just click on the “My Cool Beans drawing.jpg” and open it with an appropriate application you will see:

This is…  Cool Beans … isn’t it !!!

Some Parting Thoughts

I hope some of you find this a useful approach to your own “required windows app” problem.

You now know how to:

  • run any Windows App as a Windows RemoteApp.
  • Share files between your Ubuntu and Windows VM

Now… WHY did we make Explorer.exe  itself a RemoteApp program??

Because Simplicity is our Friend

Go back and log into to your Windows 7  VM again.

Now create a directory in windows  (lets call it “WinApps”) then use Window’s own Explorer to find every application you want to use either copy the Application or create a “short-cut” for each and put them in our “WinApps” directory folder.

Now logout of Windows 7 and return to your Ubuntu system.   Click on your Windows Explorer Launcher that we created earlier using WinConn and then using Explorer change to our  new “WinApps” directory and you will see:

From now on to launch ANY of your Windows applications as a RemoteApp click on your Windows Explorer Launcher that we created earlier using WinConn.

Then in Windows 7, using Explorer,  change to our  new “MyWinApps” directory and click on ANY of those applications and it will appear on your Ubuntu desktop.

How simple can it be?   From now on at most you only have 3 steps to do.

Actually, once Windows Explorer has appeared on your Ubuntu Desktop there is only 1 step… clicking on the Application(s) you want.     You can launch multiple apps and    they will all appear in separate windows on your Ubuntu Desktop.

So to review….  On your Ubuntu desktop:

  1. Click on the Windows Explorer Icon to run explorer.exe as a RemoteApp.
  2. When Explorer appears change to your own  MyWinApps directory on your Windows Virtual Machine desktop
  3. Click on any application shortcut you’ve placed in the directory MyWinApps and it will be launched as a separate RemoteApp and appear in its own Ubuntu Desktop window !

Best of all, you only had to setup one RemoteApp while in Windows using the RemoteAppTool and now any Windows installed application is available to you from your Ubuntu Desktop !

Also, every Windows application will be able to open/save files to our Ubuntu systems /opt/win-share directory and so will any of your Ubuntu applications.

Note:  All of this approach  works because any Windows Application launched by Windows Explorer “inherits” the Windows Environment of Windows Explorer.    In our case any program started by our “RemoteApp” Windows Explorer… will “inherit” being a RemoteApp itself..!!

Every Windows application you launch  will appear on your Ubuntu Desktop in its own “window”.   

All because … Windows Explorer was setup as a RemoteApp … so any/all applications it launches will also be RemoteApp enabled.

Advanced Windows 7 Configuration Setup

Windows 7 has the ability to be extremely customizable by anyone with Administrator privileges.

To further customize our Windows 7 VM let’s go through some of these steps.

NOTE:   BEFORE…  we start this section of the Guide lets make a KVM Clone of our existing Windows 7 VM.

Login into the Windows VM and and do a SHUTDOWN.

When the Windows VM has terminated use the Ubuntu  KVM Virt-Manager to create a “clone” of your Windows 7 VM.   That clone will be a snapshot of the configurations we have done so far.

Note:  This clone will be our backup in case we make any mistakes in this advanced configuration section of the Guide and we don’t know how to reverse what we’ve done.

Next, restart your original Windows VM and login in again.

Once you are at the Windows Desktop  click the Start button in the lower left and in the pop-up enter the following Windows Global Policy Editor tool named:  gpedit.msc  then press Enter.

gpedit.msc is a very powerful tool as it will let you literally change any setting in Windows.

Note:   this is why we made a backup clone of all our previous work !!

A nice feature of gpedit.msc is that if you click on any configuration entry in the left side of its display you will see on the right-side an “edit” box which:

  • explains in plain language what the edit options are for that feature
  • provides a simple check-box type configuration entry to change that feature’s options
  • provides simple Previous/Next buttons to move either to the next feature to edit or the previous.

For this Guide the following is only to demonstrate HOW TO change Windows 7 feature settings using the Windows Global Policy Editor tool called “gpedit.msc”.

Just to illustrate how the gpedit.msc tool works I’ll show you how to find/change one Feature option related to RDP User Sessions.

Note:   this is not necessarily something you have to do but is a useful demo so you can see the displays that gpedit.msc will present to you.   

gpedit.msc is so useful to customize Windows that there are probably other Features/settings you will want to modify to customize your Windows application and RDP session use.

Lets demonstrate how to find/modify the Feature options for the number of  RDP connections a user can have.   This Feature setting is called:   Limit number of connections

To find this feature in order to change its settings:

1) In the Left-side Panel click on “Computer Configuration
2) Click on its sub-option “Administrative Templates
3) Click on the Administrative Templates sub-option for “All Settings
4) In the Right-side Panel you can scroll or page up/down until you see “Limit number of connections” then click on that entry to edit its feature settings.

When you click on “Limit number of connections”  you will be presented with the feature option editor that as we’ve mentioned earlier will explain in it’s “Help” box what each setting does so you understand what your changes will do.

In the case of  “Limit the number of connections” we want to change this to “unlimited” so enter 999999 into the RD Maximum Connections allowed field and then Click the Apply button.

Note:  After Clicking on Apply, the change becomes immediately active in Windows.

Click OK to return to the Group Policy Editor (gpedit.msc) so we can make more changes.

Note:  without buying Terminal Server licenses for multiple users (CALS) from Microsoft.. by default.. Windows will only allow 2 desktop connections!

Important Note:  When using FreeRDP the way we have set it up, the only RemoteApp is the Windows Explorer program.   This only requires one RDP connection but enables you to start many Windows Applications up concurrently that will appear on your Linux Desktop and look/act like any other Linux application.

But it will only use a single RDP connection for all applications launched from that Windows Explorer !!

There are so many Windows system configuration options available (literally hundreds) to edit in gpedit.msc that its almost impossible to go through all of the useful ones for your particular situation.

The Global Policy Editor (gpedit.msc) is so user friendly with it’s “help” display on each Feature entry that it is hard to mess up your Windows installation… but never say never … and you could do something that might cause you a problem.   Again, that’s why we created our snapshot KVM clone of our Windows VM.

Search through all of the editable Features presented in gpedit.msc and tune your Windows system however you like.   Some often configured items revolve around settings for:

Enabling/disabling non-admin users to Shutdown the Windows system

Setting a time limit for disconnected RDP sessions before terminating the User’s Session.

Specifying a program to be run each time an RDP connection session is created.

And many more….

So browse the Features settings and change what makes sense to you and your use of Windows .

Have fun….

You gotta love Open Source Software and Solutions it makes possible !

Brian Mullan

Raleigh, NC

40 Comments »

  1. Greetings! Very helpful advice within this article!
    It’s the little changes which will make the biggest changes. Thanks a lot for sharing!

    Comment by How to get free apps — July 3, 2013 @ 8:13 am

  2. Very nice article, thanks or sharing.
    Only thing I want to point is that your point #2 is not valid. You can exchange data without SAMBA/NFS via raw hard disk access in Virtualbox. I usually mount my Home partition in the Windows VM and have windows use it as well, so you get direct bidirectional read/write.

    Comment by Gryazniy — July 8, 2013 @ 1:30 pm

    • Thanks for the idea regarding virtuabox.

      I used KVM and don’t usually use virutalbox unless there is some pre-built appliance that requires it.

      But for someone using virtualbox that is a good solution.

      Comment by bmullan — July 8, 2013 @ 4:45 pm

  3. Just desire to say your article is as astonishing. The clearness for your publish is just great and
    that i can suppose you are an expert on this
    subject. Well along with your permission let me to snatch your feed to stay up to date with impending
    post. Thanks 1,000,000 and please carry on the gratifying work.

    Comment by healthy diet — August 22, 2013 @ 4:35 am

  4. Amazing. Can’t wait to take a run at this project in 2014, ironically right after I get done phasing out XP. This potentially removes the restrictions I faced on considering a migration to Linux clients, those pesky Windows-only apps. I am hopeful that optical drive instances can be redirected, as we still use some apps that require a CD be mounted. I will be referring to this guide a lot. Thanks!!!

    Comment by jaxun — September 26, 2013 @ 1:06 pm

  5. Since you still need a license for windows and it has to be an enterprise or ultimate edition, I really dont see why you are going to all that trouble to get one app under linux. Just work completely in windows. The best way to promote linux is not to look to the past, use native linux apps in stead of giving your money to companies who refuse to build their tools for linux. The native linux tools need that money to get as good as the windows-only variants.

    I do agree this is a very nice technological experiment.

    Comment by Peter Van Biesen — May 1, 2014 @ 3:21 am

    • Peter
      The objective is to simplify work flow for a user. My example is just that… its an example.
      If you were already in a company that had Windows Server deployed with RemoteApps configured. All you would have to do is the Winapp installation and then you’d have any of your company’s published RemoteApps immediately available on your Ubuntu desktop and integrated w/it. Or if you already have a 2nd computer running the appropriate Win7 version on your home network.. skip the VM and just configure it to publish its Apps (actually Windows Explorer if you followed my demo) and your Ubuntu desktop will have all those apps available also.
      If you don’t have such an environment available … but you do have Win7 Ultimate or Enterprise then rather than dual booting back & forth btwn Win7 and Ubuntu you now know how to enable use of the Win7 in a VM (minimized in your Ubuntu desktop) to still integrate any Windows app with your Ubuntu desktop… including printing, local file share for exchange of data btwn Win7 and Ubuntu (and vice-versa), etc.
      In my case its also not just 1 application conceptdraw is a suite of several great apps, the mindmap tool, the project management tool (import/export to Microsoft Proj Manager) and the conceptdraw tool that allows me to import/export to Microsoft visio.
      All of that and more is immediately usable from my Ubuntu desktop now and I don’t have to dual-boot, run Wine etc.
      It would be a great thing if every useful app in Windows had a dopple-ganger in linux but unfortunately thats still not the case.. this gives people a useful option I think.

      Comment by bmullan — May 1, 2014 @ 5:03 am

    • Peter…

      Like most linux users I would love to abandon Windows and Windows applications use. In my personal life I can do that. However, like many people the company you work for may demand use of certain Windows applications which just cannot be run on Linux even with Wine or a Wine related tool like CodeWeaver’s excellent Crossover Linux app.

      If your company (or a client) requires you to use a Windows application to work with/for them… what are your options?

      I actually look at the ability to support those kinds of Windows apps on linux… as being a great way to help introduce those Windows Users to Linux without asking them to “give up” anything they actually have to use to accomplish whatever it is that they do. Once they get more comfortable with what Linux does and possibly even native Linux apps that they could use instead of their Windows Apps then perhaps they will become future Linux proponents.

      Make sense?

      Brian

      Comment by bmullan — April 16, 2015 @ 6:13 am

  6. How secure would this be? We use Excel for financial information (can’t use libreoffice due to lack of VBA support and it needs to be compatible with office).

    Comment by Jared — March 10, 2015 @ 10:10 am

    • Jared

      You have to keep in mind that none of the Windows 7 applications are crossing the internet or even leaving the Ubuntu machine. They are running in a VM on that Ubuntu machine.
      So if Ubuntu machine is secure so will be the Win7 apps you run.

      Now if you are like me and access your Ubuntu system at times using a linux remote desktop (I use x2go — see http://www.x2go.org), then usually those are encrypted by an ssh connection.

      Jared … also you are aware that using either Wine or CodeWeaver’s Crossover Linux, which uses Wine also but is much more ‘advanced’ in some aspects. Using Crossover (https://www.codeweavers.com/products/crossover-linux) you can install and run Microsoft Office (office 2003, 2007, 2010) as native Linux applications! After installation of Microsoft Office, Crossover will also create launcher Icon’s for the Windows apps (Excel, Word, Powerpoint etc) on your linux desktop so all you need to do is click on those and you get just that app running in its own window. I use & can recommend CodeWeaver

      If all you want to do is run Office apps then I’d go that route first just so you don’t have to create a Win7 (Ultimate or Enterprise) VM and do the steps I documented. If you use Win7 apps that Crossover can’t or doesn’t support that’s when my VM approach comes in handy.
      Hope that is what you were asking?

      Brian

      Comment by bmullan — April 16, 2015 @ 5:56 am

  7. Hi. I tried your instructions, but all I have succeeded is launching Windows Server RemoteApps on Ubuntu desktop. I have Win7 in VirtualBox, but it can’t start any application through WinConn. It just opens the whole desktop. Windows Server apps start normally, but when you have more than one window, foreground will overwrite background while you move they across each other. This is similar to VMWare desktop integration mechanism (I guess they use the same approach in Unity mode). So, this is kinda toy. I hope sometime it will become useful for production, but for now it seems to me that we are not completely entered XXI century.

    Anyway, thanks for new experience!

    Comment by Данил «Danatela» Каримов — April 16, 2015 @ 2:56 am

    • Danatela

      Thanks for the message. Sorry you are having a problem but this does work and there are a lot of people that use this process to run single windows apps on the Ubuntu system.
      I just ran this on my Ubuntu 14.04 system and it works as described. I can start multiple Windows 7 apps and each runs in its own window in the Ubuntu Desktop (I am using default Ubuntu desktop w/unity).

      You said: “but it can’t start any application through WinConn. It just opens the whole desktop.”

      First, your Windows VM is Windows 7 Enterprise -or- Windows 7 Ultimate … correct? Thats stated in the blog post as a requirement.

      You can’t use plain Windows 7 because it does NOT support “remoteapp” capabilities. If you use plain Windows 7 you can still get an RDP connection to Windows BUT only to the console and limited in # of sessions.. and you will only see the whole windows desktop not a single app window.

      If you have confirmed that you are using Windows 7 Enterprise -or- Windows 7 Ultimate then continue…

      If on the Ubuntu desktop you only see the “entire” Windows Desktop and not just a “window” with the 1 application you are trying to launch then you missed configuring something or configured it incorrectly on the Windows 7 VM. There are a couple of things in particular I would go back and check.

      So here are some troubleshooting suggestions:

      Verify that the user you are logging into Windows with was setup correctly in the Win7 Control Panel, System, Allow Remote Access screen?

      Since since it sounds like you do get an rdp connection to the Win7 VM (you said you see the whole Window’s desktop instead of just the single application).

      Leave WinConn out of the picture and just install and try using xfreerdp from a terminal to run the Windows Explorer that you setup per the instructions and see what it displays (whole desktop or just the Win Explorer app?).

      xfreerdp -u yourWin7UserID -p yourWin7Passwd – -app –plugin rail – -data “%windir%\explorer.exe” – – yourWin7ipAddr

      note: app, plugin and data options are preceded with 2 dashes.
      yourWin7ipAddr is also preceded with 2 dashes BUT there should be a space after the second dash between it and the IP address

      That should work also because that command is basically doing what WinConn does in the background of the WinConn gui?

      If that doesn’t work and you still get a full windows desktop then check whether you may need to create the Win7 registry entry described in this section of the wordpress blog entry:


      On your Windows 7 virtual machine, run Regedit from the “command bar” on the lower left side of Windows.
      When Regedit pops up, start clicking down the following path HKLocalMachine\SOFTWARE\Policies\Microsoft\Windows NT (re click HKLocalMachine, then click SOFTWARE, then Policies etc)
      once you are at Windows NT — check to see if there is an KEY entry alrea dy named “Terminal Services” beneath it… if there is NOT then do steps 4 & 5. If it already is there skip to step 6
      Right Click on Windows NT, select/click on NEW and then select KEY (note: this will create a new “key” entry box underneath Windows NT
      Change the name of that new KEY to “Terminal Services”
      Click on Terminal Services
      In the right hand window of Regedit “right click” add a DWORD 32 entry
      Under that, add a DWORD32 value named “fAllowUnlistedRemotePrograms” and set the value to 1

      Let me know what you find out?

      Brian

      Comment by bmullan — April 16, 2015 @ 5:48 am

      • Gosh!! This is exactly what I was looking for. You are a life saver 🙂 I will give this a shot today. Winconn does not seem to work with Ubuntu 14.04 or Linux Mint 17. I installed freerdp x11 but could not log into my Win 7 enterprise VM. Looks like I missed a few steps on customizing the Windows VM. I will test your approach and report back. Thank you sooo much. Keep up the nice work!

        Comment by Harry — April 17, 2015 @ 5:25 am

      • Harry

        Winconn still works for me and I use Ubuntu 14.04 to connect to my Win7 Ultimate VM

        In the Winconn “form” … the Application field is set to: %windir%\explorer.exe

        The reason for %windir% … xfreerdp & rdesktop both have a problem with semicolons so you can’t
        enter “c:\…anything”. To get around that and be able to point to c:\windows\explorer.exe the
        %windir% points to the “c:\windows” directory for you.

        The PORT field should be – 3389

        Also, the xfreerdp in the repositories (ubuntu or mint) used to be an older version. But today
        I know Ubuntu has xfreerdp v1.02 in the repository and I would assume Mint does also so that should be ok.

        Try doing the connection from the command line in a terminal first just to make sure you have everything setup right in Win7 before
        trying with Winconn.

        example command line:
        xfreerdp -u yourWin7UserID -p yourWin7Passwd – -app –plugin rail – -data “%windir%\explorer.exe” – – yourWin7ipAddr

        note: app, plugin and data options are preceded with 2 dashes.
        yourWin7ipAddr is also preceded with 2 dashes BUT there should be a space after the second dash between it and the IP address

        That should work also because that command is basically doing what WinConn does in the background of the WinConn gui?

        Comment by bmullan — April 17, 2015 @ 7:10 am

      • Thanks so much for your prompt response. Could you possibly offer some tips with respect to installing Winconn on Ubuntu 14.04? I tried adding the repositories as stated on the Winconn website, but that fails. Did you get a deb file for Winconn or did you end up compiling the source code for installing Winconn? Your help will be greatly appreciated. Thanks so much again.

        Comment by Harish — April 17, 2015 @ 8:29 am

      • Harish…

        I had emailed Alex Stanev some time ago and he just didn’t have the time to update the PPA to the newer Ubuntu versions.
        so I justed installed and used the Ubuntu 12.10 by adding the following to my /etc/sources.list file then doing “sudo apt-get update && sudo apt-get install winconn -y”

        deb http://ppa.launchpad.net/realender/winconn/ubuntu quantal main
        deb-src http://ppa.launchpad.net/realender/winconn/ubuntu quantal main

        It still worked for me? I’d give that a try as its easy to back out if it doesn’t work in your situation.

        Brian

        Comment by bmullan — April 17, 2015 @ 8:43 am

      • This worked. I was able to install Winconn! I cannot believe it. I will now go over the rest of your tutorial and see if I can get this Remote App to work. I am currently installing .NET in my Windows VM. I will keep you posted.

        Comment by Harish — April 17, 2015 @ 8:48 am

      • Thanks for quick reply. The Win7 version is Ultimate. May be it is custom build, where Terminal Services are cut or turned off. I tried turning on launching non-published apps in Windows and using xfreerdp background command as you admitted, but it only opened the full desktop. Let me just give up with Win7.

        My real problem is when I use apps on remote Windows 2008 Server which runs on real machine, this approach works normal, except that background windows become overwritten again and again with foreground windows. When I open some form, then open child form or just place another form on it, partially covering background, then start to move it over screen, it leaves it’s content in background until I release left mouse button. The xfreerdp frame moves like it should move. It even transforms it’s content accordingly to compiz effects. But background window corrupts all the experience. This makes me think that something goes wrong. I know that every window in Windows is placed on the same surface, so when you redraw something, you will also affect all background windows causing foreground window trace on background. But I had hope that RemoteFX protocol will do better.

        Comment by Данил «Danatela» Каримов — April 20, 2015 @ 3:23 am

      • Danatela

        Just out of curiosity does RemoteAPP work if you are on another Windows pc trying to run a remoteAPP from that same Windows 2008 server ?
        You also might read thru or file an “issue” on this with freerdp (https://github.com/FreeRDP/FreeRDP/issues). You could describe this problem and see if they have any hints. I’ve not had this ever happen but then I can’t test every possible windows server, linux version, etc. either.

        One thing I did find out last week helping another person who posted a question on this blog was that the latest Github version of freerdp (v1.2) has some kind of bug that causes problems working with remoteapp. This was reported by several people unrelated to my blog instructions. The person I was helping (Harish) purged his system of the freerdp he had downloaded the source from GitHub for and had compiled/installed on his system. Harish then just installed the freerdp v1.02 which is in the Ubuntu & Mint repositories and then his freerdp remoteapp worked.
        Brian

        Comment by bmullan — April 20, 2015 @ 7:09 am

      • That is correct. Reverting back to FreeRDP v 1.02 seemed to do the trick for me. My system now seems to work like a charm! A big thanks to Brian 🙂

        Comment by Harish — April 20, 2015 @ 10:23 am

      • Sorry, don’t know how to post on your last reply. I have made a small video which demonstrates what is wrong. Have a look at it. http://www.youtube.com/watch?v=26kHBTo2Ogg

        Comment by Данил «Danatela» Каримов — April 21, 2015 @ 7:22 am

  8. I think I am close. When I try to launch WINWORD, I see a message WINWORD: Success at the bottom of the Winconn window. But nothing seems to appear after that. I wonder what I am doing wrong. I am so sorry to bug you with questions. I am still fairly new at using Ubuntu/Linux. Do you have any ideas?

    Comment by Harish — April 17, 2015 @ 9:02 am

    • again try to use the command line in an ubuntu terminal to launch the windows explorer.exe first and see if that pops up in its own ubuntu desktop window (without the full windows desktop showing too).

      First double check that you setup explorer.exe to be a “remote app” using the RemoteAppTool (http://www.kimknight.net/remoteapptool) as I describe in the blog.

      Then log out of Win7 (but leave the VM running) and then in an ubuntu terminal… execute:

      xfreerdp -u yourWin7UserID -p yourWin7Passwd – -app –plugin rail – -data “%windir%\explorer.exe” – – yourWin7ipAddr

      If that does not work then you have to go back to the blog post and re-read the sections about configuring the Win7 end of things again as you may have missed a step.

      Comment by bmullan — April 17, 2015 @ 9:39 am

      • also… in this command make sure you put the single and double dashes ( – or – -) appropriately. The -u is a single dash followed by u (no space). The -p is a single dash followed by p (no space). The – – app is 2 dashes w/no space between them followed by the “app” with no space btwn it and the double dashes … same wiht the – – data. Finally, the IP address of the Win7 is 2 dashes (no space btwn them) FOLLOWED by 1 space, then the IP address.

        Sorry for the long explanation but for some reason wordpress & this editor make double dashes look like some kind of long single dash instead of 2 dashes.

        Comment by bmullan — April 17, 2015 @ 9:44 am

      • Thank for these tips. I tried the command line and ended up with a bunch of Syntax suggestions. I think I am going wrong with respect to the IP address of my Windows 7 guest (inside virtualbox). Does one need to assign an IP address to Windows guest?

        Comment by Harish — April 17, 2015 @ 9:57 am

  9. It also looks like the format of the command-line has changed a bit. When I put in the command that you suggested, I get a suggestion to use a command in this format xfreerdp /u:JohnDoe /p:Pwd123! /w:1366 /h:768 /v:192.168.1.100:4489. I am not sure of where I am going wrong.

    Comment by Harish — April 17, 2015 @ 10:03 am

    • Looks like I just cannot get the FreeRDP window to open. I wonder if this is an issue with Linux Mint! I feel like I am close to getting this to work. However, I see a last minute hiccup.

      Comment by Harish — April 17, 2015 @ 10:24 am

      • Harish… the command line syntax you mention is the new freerdp syntax. what I showed you is the old syntax but I know the old still works because I just tried it again this morning before I responded to you.

        Comment by bmullan — April 17, 2015 @ 10:54 am

      • Harrish… send me an email – bmullan.mail@gmail.com

        Comment by bmullan — April 17, 2015 @ 11:03 am

  10. from a terminal on your Mint system can you ping the IP address of the Windows VM okay? Note – I use KVM not virtualbox for my VM’s so there “may” be some difference but first make sure you can Ping the Win7.
    Log into your Win7 vm and execute “cmd” from the Start menu’s command entry form then do a IPCONFIG to see the IP address of the Win7 machine just to make sure the IP address is correct.

    Comment by bmullan — April 17, 2015 @ 10:57 am

  11. […] am currently trying to access Windows apps remotely using FreeRDP. I followed the steps found Here, and hit a stonewall. Apparently, Winconn is incompatible with 15.04, so I have no way of […]

    Pingback by Winconn replacement on Ubuntu 15.04? | DL-UAT — May 30, 2015 @ 8:30 am

  12. Hi , Can you please help me with the option where i have a windows desktop and i want to access internet through mozilla which should come from a ubuntu machine ? is there any way i can do this , i am in tremendous pressure to achieve this.

    Comment by AK — August 26, 2015 @ 8:03 am

    • Not sure I understand your question..could you be more specific?
      You can launch firefox/mozilla from the ubuntu desktop launcher to do that!
      You could install firefox/mozilla on the Windows7 VM and launch it as a remote app (then cut&paste between it and other Windows Apps would work).
      Is that what you are trying to do?

      Comment by bmullan — August 27, 2015 @ 9:15 am

  13. […] am currently trying to access Windows apps remotely using FreeRDP. I followed the steps found Here, and hit a stonewall. Apparently, Winconn is incompatible with 15.04, so I have no way of […]

    Pingback by Winconn replacement on Ubuntu 15.04? – Internet and Tecnnology Answers for Geeks — January 26, 2016 @ 9:17 pm

    • Hi,

      I’d thought I mentioned this in a blog update. Yes, the WinConn PPA has not been updated since Ubuntu 12.10 (if I remember right).
      I did contact the author (Alex Stanev) about 2 months ago and asked if there was any chance he could update WinConn for the upcoming Ubuntu 16.04 LTS (long term support) release and he indicated that he would try. He said he’d been meaning to anyway and so would make an effort to do so.

      However, you really don’t need WinConn to use the rest of the solution you can actually use xfreerdp from the Command line in a terminal to start up the Windows desktop that the rest of the article tells you how to configure. Note that you’d still have to create the Windows VM & the rest of the configuration I talked about for it.

      reference: https://github.com/FreeRDP/FreeRDP/wiki/RemoteApp

      Again, sorry I don’t have the exact command you’d use handy right now because I just saw your message but the command would be very similar to what’s shown at the bottom of the above URL.

      example:
      $ xfreerdp /u:userID /p:password /app:”||explorer” /v:IP_of_Windows_VM

      that may not be exactly right and I can try to set this up again to get the exact syntax for you but it may be next week as I’m working on finishing a project this week. But it does work.

      Now to keep from using the command line you can always create an Ubuntu “launcher” icon to execute the above command for you. I use an app called Arronax (http://www.florian-diesch.de/software/arronax/) to make mine but you can use whatever tool you like. You could also just create a Bash script to execute the command for you also?

      That’s all not as simple as WinConn made things but it does work.

      However, if you are not very familiar with use of PPA’s you can still install WinConn its just a couple more steps.

      First you have to add his PPA to your /etc/apt/sources.list file manually.

      So use your favorite editor (I use nano but gedit works too or whatever you choose)

      $ sudo nano /etc/apt/sources.list

      then add the WinConn “Ubuntu Quantal” release ppa info which would be the following 2 lines:

      deb http://ppa.launchpad.net/realender/winconn/ubuntu quantal main
      deb-src http://ppa.launchpad.net/realender/winconn/ubuntu quantal main

      Then save the /etc/apt/sources.list file.

      Next, do an update:

      $ sudo apt-get update

      then install Winconn

      $ sudo apt-get install winconn

      Now Winconn will be installed ok but its a version for a very old version of Ubuntu (Quantal v12.10)

      I haven’t looked at it in a few months but I do know there were some things that no longer worked right.

      Send me an email reminder (bmullan.mail@gmail.com) next week and I’ll see what I can do to help you get going.

      Brian

      Comment by bmullan — January 26, 2016 @ 10:03 pm

    • Hi… thought I’d pass on an update about WinConn from the Developer Alex Stanev which should be good news to everyone…!

      Brian

      ——– Forwarded Message ——–
      Subject: Re: Is there any chance of WinConn fix for the Ubuntu 16.04 release ?
      Date: Fri, 29 Jan 2016 10:53:12 +0200
      From: Alex Stanev
      To: brian mullan

      Hi,

      I’ve moved winconn to github: https://github.com/RealEnder/winconn

      With this version, I’ve moved to new xfreerdp commandline options and fixed dependencies.
      Generally, you can build it with:

      git clone https://github.com/RealEnder/winconn

      then:
      cd winconn
      dpkg-buildpackage

      If you have dependencies needed (it should cry for them), you’ll have the .deb packages built successfully and installable. This works with 15.10, but should work with other versions also.

      The problem here is with current freerdp (2.0.0-dev) they have RemoteAPP regressions – partial window shown, window froze and etc.
      Please let me know If you have stable RemoteAPP functionality with concrete freerdp version. There are bugs submitted against freerdp, I’ll keep checking their status.
      Any dev help with winconn is welcome.

      Cheers!

      Comment by bmullan — January 31, 2016 @ 11:15 am

  14. Hi Brian, How do I access remote apps on a windows server from fedora linux terminals. Will the above steps work for fedora as well, kindly guide..thanks

    Comment by sreenath073 — August 22, 2016 @ 1:46 am

    • I think everything but winconn will probably work. I believe freerdp is in the fedora/centos repositories so you can just use it from the cli to execute windows explorer after you’ve setup explorer as s remoteapp using kim knight’s remoteapp tool.

      Comment by bmullan — August 22, 2016 @ 4:00 am


RSS feed for comments on this post. TrackBack URI

Leave a reply to Gryazniy Cancel reply

Create a free website or blog at WordPress.com.