Thursday, September 5, 2013

FreeRDP/RDesktop GUI client

I've created a little & simple PyQt4 GUI for RDP client. FreeRDP (old and new version) and RDesktop are supported. Can be used in every Linux arm/x86 board/pc, you just need python-qt4 package.
Just copy files in /usr/bin/, edit rdpgui.ini to match you rdp server env and add @python /usr/bin/rdpgui.py in autostart.


More infos and source code here: https://github.com/Gibbio/RDPGUI

36 comments:

  1. Thanks Gibbio! I'll definitely check this out.

    ReplyDelete
  2. Hi! Is it possible to add an input field for "server" at the GUI. Would be great!

    ReplyDelete
    Replies
    1. released a new version, now domain can be insered into username field like in windows os. Ex: DOMAIN\username
      otherwise config.ini parameter will be used

      Delete
    2. Cool!
      I would need the following feature. From the Terminal it should be possible to connect to different Windows Workstations.

      Delete
    3. in lastest version you can put multiple server on config.ini

      Delete
    4. If you are still interested (or anyone else is looking for this functionality),
      I have created a fork of this excellent tool for this very purpose on GitHub: https://github.com/DaveStott/RDPGUI

      Delete
  3. Hello,

    I would like to use your script, but I can not make it work. I´m not linux guru so if ask for stupid thing be patient with me.

    When I try tu run your script, I get this :

    rpitc@rpitc-:~$ sudo python /usr/bin/rdpgui.py
    sudo: unable to resolve host rpitc-
    [sudo] password for rpitc:
    Traceback (most recent call last):
    File "/usr/bin/rdpgui.py", line 152, in
    ui.setupUi(RDPGUI)
    File "/usr/bin/rdpgui.py", line 77, in setupUi
    self.retranslateUi(RDPGUI)
    File "/usr/bin/rdpgui.py", line 104, in retranslateUi
    self.RDPdomain.setText(_translate("RDPGUI", config.get("DEFAULT", "RDPDomain"), None))
    File "/usr/lib/python2.7/ConfigParser.py", line 618, in get
    raise NoOptionError(option, section)
    ConfigParser.NoOptionError: No option 'rdpdomain' in section: 'DEFAULT'

    ReplyDelete
    Replies
    1. Please update to lastest version (updated 10mins ago). Put all the file *.py *.ini *.png in the same folder

      Delete
  4. I installed your newest release everything works fine except wlan tool is not picking up the Raspberry Pi wifi dongle. I can however get ip through Ethernet. Did I missing something? Please let me know if you need anything from me such as logs.

    ReplyDelete
  5. I am looking into using the Raspberry as a thin client for RDP'ing into virtual machine running on my Debian server (using VirtualBox). I was wondering what performance I get on a local network using UTP cable. I just want to hide my lumpy server somewhere and login via the Pi attached to the back of my monitor. Can anyone comment on lagginess and overall desktop performance (webbrowsing, document editting, no video)?

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. Hello,
    I installed your newest release on my raspberry wheezy release but it don't work...
    When I modify the autostart file, my raspberry boot on a prompt and nothing append...
    Can you help me?
    Thanks

    ReplyDelete
  8. Hi

    I am testing this on the x86 version at the moment (new install), logged in as armtc, run the below...

    sudo firefox
    (download all files as above to /usr/bin)
    sudo apt-get install python-ct4 (fails with cant find some domains)
    sudo apt-get update
    sudo apt-get install python-ct4 (completes)
    python /usr/bin/rdpgui.py

    result ERROR
    File "/usr/bin/rdpgui.py" lin4

    ^


    any ideas?

    ReplyDelete
  9. UPDATE
    The above was the way the files downloaded, i have to VIEW them online first, then press "RAW" then save the file.

    However i have it working, changed the rdpgui.ini, however its not actually running the RDP client, i change the RDP Binnary to "remmina" but still no joy....

    ReplyDelete
  10. The error i am getting is (and this is driving me nuts)

    local variable 'DomainFlag' referenced before assignment

    This appears to be a programming bug (x86 install).

    ReplyDelete
  11. UPDATE

    Python-qt4 doesnt install on the RPi version..

    apt-get install python-qt4
    E: Unable to locate package python-qt4

    The above commads works on the PC version, this leaves the RPi version with no GUI interface (which is a shame).

    ReplyDelete
    Replies
    1. i'll test it soon, normally just modify apt ssources.list to include standard Jessie repository then
      apt-get update
      apt-get install python-qt4

      Delete
  12. I can confirm that updating the repos on my Pi does allow the Qt4 to be installed.

    I then downloaded your zip file, unzipped the files and moved them all to my /usr/bin folder. I did not change the permission on those files (maybe I should have).

    I updated the rdpgui.ini file (that is in the /usr/bin folder) and used the settings to use rdesktop. I updated the autostart to start the rdpgui.py.

    Upon rebooting the Pi, I can see the rdpgui is displayed. I can use the dropdown and select the server I want to connect too. But when I enter in the credentials nothing happens. no rdesktop connection occurs.

    I also would like to know if this rdpgui can be closed if need be. There appears to be no way to shut it down. I can see where there shouldn't be a need to shut it down, but I thought I would ask all the same.

    Thank you Gibbio...I can definitely see a useful purpose for this rdpgui tool.

    Once again, thank you for all your help with these tools you've provided for us.

    ReplyDelete
  13. I've been doing a bit more digging on why this isn't working for me. I've now run rdpgui.py from the terminal and discovered I have a problem with my domain. Here is the error I receive:

    Traceback (most recent call last):
    File "rdpgui.py", line 141, in handleButton
    DomainFlag = config.get("DEFAULT", "RDPDomainFlags") + config.get("DEFAULT", RDPDomain)
    NameError: global name 'RDPDomain' is not defined

    For my test I was connecting to a server that is not in a domain. In fact, most of our workstations are only in the WORKGROUP. What is the proper command in the .ini file that would allow me to connect to workstations/servers that are not in a domain?

    Thank you.

    ReplyDelete
  14. greavette, I had the same problem.
    On line 141 change config.get("DEFAULT", RDPDomain) for onfig.get("DEFAULT", "RDPDomain")

    (right, just quote RDPDomain)

    ReplyDelete
  15. Thank you Kadu Langoni for you helpful reply. Good Catch! I had missed that RDPDomain was missing quotes.

    I've confirmed that this fixes my issue and I can now connect to our servers using this RDPgui tool.

    Thanks!

    ReplyDelete
  16. when I wrote username and press enter in console error: protocol security negotiation falure

    ReplyDelete
  17. Did you modify the rdpgui.ini file for the domain or workgroup you are using to connect as well as update the list of IP/DNS computer names? What if you used just a straight terminal to connect via rdesktop/freerdp (whichever you are using) to confirm you can connect successfully.

    ReplyDelete
  18. Hello!
    Impressive your work.
    I'm running Moebius in Raspberry Pi Model B without the graphical interface, only console
    I have the following question:
    I can run RDPGUI without the X server installed?
    Thanks in advance.

    ReplyDelete
  19. Hey , I have a little Problem - when trying to conncect with rdpgui.py rdesktop try to connect to server with the name ot the machnine - rdiTC ? where is problem ?

    ReplyDelete
  20. Can anyone tell me where i can finde a logfile to solve my Problem? When i enter my username and password and submit the infos nothing happens ?!

    ReplyDelete
  21. Hay! Thanks for good tool! Unfortunately I get this message on ubuntu 13.10
    -------------------------------------------------------------
    transport_connect: getaddrinfo (Name or service not known)
    Error: protocol security negotiation failure

    What could be solution?

    ReplyDelete
    Replies
    1. Hi Alex,

      If you are trying to connect to a hostname then it may be that it is unable to resolve it's IP address. If this is the case then try using the IP address of the destination remote desktop server to verify this is the issue.

      Delete
    2. HI! Thank's for help. I have found that problem is that on Ubuntu have to use old syntax like -x and --disable-wallpaper. Unfortunately my biggest need was --app option what does not work for me - Erros reading parameters. If i put same parameters in comandline it works. There what i added : --app --plugin rail --data "||cmd" -- Appserv.pjvt.local
      Will search for solution.

      Delete
  22. This comment has been removed by the author.

    ReplyDelete
  23. With Debian 7 the perfect ThinOS! Thank you very much :)

    ReplyDelete
  24. Hi ,lots of thanks for your tool.
    Is it possible to use .RDP file as a server which is one of the xfreerdp options?
    actually I want to connect my users to VM Pools.

    ReplyDelete
  25. This is my aproach on a Windows Server 2008 NON R2
    Session brooker, Roundrobin DNS setup with 4 Terminal Servers
    The script can of course be put in autostart if wanted.
    ----------------------
    apt-get install yad
    touch rdp.sh
    edit rdp.sh with your editor of choice and have the following (replace RDPSERVER with your IP or DNS name)
    Code:
    #!/bin/bash
    frmdata=$(yad --title "RDPSERVER" --form --field "Username:" --field "Password:":H)
    frmname=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $1 }')
    frmpass=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $2 }')
    xfreerdp /f /cert-ignore /d:YOURDOMAIN /u:$frmname /p:$frmpass /sec-nla /load-balance-info:tsv://RDPSERVER /kbd:0x0000041D /v:RDPSERVER

    ReplyDelete
  26. When I edit the rdpgui.ini file with my domain and server name the .py no longer works I get MissingSectionHeaderError: file contains no section headers. What am I doing incorrectly?

    ReplyDelete
  27. Hi,
    I just took the latest version of rdpgui, and would like to:
    set a fixed username (like USER-A), and a fixed window-size of the RDP-connection - currently its always a 1024*768 size, but it could go up to 1650*1050.
    Is there a way to do this?
    Thanks in advance!

    ReplyDelete
  28. fantastic program worked perfectly , there is some way to use it by calling a RemoteApp ?

    ReplyDelete