Code Monkey home page Code Monkey logo

rdpx's Introduction

rdpx

rdpx enables seamless remote access to applications running on another computer.

It makes use of Microsoft's RemoteApp technology that is built-in to Windows.

It is currently in the early stages of development. Check the Issues page to see what's planned.

Screenshots

Features

  • Create and manage RemoteApps on Windows desktops and servers.
  • A web interface to access your RemoteApps.
  • Webfeed that Windows and mobile app clients can subscribe to.
    • Lists available RemoteApps in Windows clients' Start menu.
    • Lists available RemoteApps in the mobile app.
  • Authentication (Windows credentials).

Requirements

A supported edition of Windows XP, 7, 8, 10, or Server. See the compatibility chart.

Downloads

Lastest zip (v0.3.8.0)

Getting started

Install rdpx. Go to your Start Menu and run it from there. If you are running from source, run Run server.bat.

Once running, open a web browser and navigate to: http://127.0.0.1:8080/

Enter a Windows username and password when prompted.

Click the New RemoteApp button. Enter the name and path of the desired app, then click Save.

You are now ready to access your app(s) from another computer!

Accessing your apps from another computer

You should now be able to access rdpx from another computer (on the same network). Open a browser and navigate to http://x.x.x.x:8080/ (replace x.x.x.x with the host computer's IP address).

Note: You may need to open a firewall port (TCP/8080 by default) on the host before you can access rdpx from another computer on your network.

You can change the TCP port that rdpx uses from 8080 to something else in Settings > Web Interface.

To allow remote access from the internet, there are a few options:

  • Set up a VPN server to allow secure remote access into your network. DIY setup is a little involved. Alternatively, you could use a service like Hamachi - free for up to 5 devices.

  • Use a Remote Desktop Gateway server. Requires Windows Server.

  • On your router, port-forward TCP/8080 and TCP/3389 to the host running rdpx. Extreme security risk, do not actually do this.

Webfeed

The Webfeed feature allows Windows and mobile app clients to subscribe to rdpx's RemoteApps.

  • For Windows clients, it will keep an up-to-date list of RemoteApps in the clients' Start Menu. Configure in RemoteApp and Desktop Connections.
  • For mobile app clients, it provides an up-to-date list of RemoteApps directly in the app. In the Microsoft Remote Desktop app, click the + and add a Remote Resource Feed.

You can enable Webfeed in Settings > Web Interface. You should also set the server address manually in Settings > Host.

The Webfeed can be accessed using the url: https://x.x.x.x/webfeed

Webfeed requires HTTPS to work properly. Windows clients require a valid certificate whereas mobile clients can choose to ignore the certificate.

Adding HTTPS

You can add HTTPS support using NGINX for Windows.

Copy the files provided in the rdpx nginxconf folder into NGINX's conf folder.

Replace the certificate/key files with your own if you need a valid certificate.

More information can be found in README.md in the nginxconf folder.

rdpx's People

Contributors

kimmknight avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rdpx's Issues

IP and Username in CMD

Hi Kim,

I cant thank you enough for this amazing piece of software. Its very well written and secured as well. I was just wondering like could you help me display the logged in windows username and the original source ip the connection is comming from in the rdpx cmd? at the moment, it shows very important log, but instead of showing the source Ip it shows my router IP whenever i access from WAN and it would be nice to see the logged in username as well. Please let me know.

Hide Main Settings and App Settings

Hello,

Could you please help me to hide the main settings icon and app settings icons. I am using this program as the main source for hosting apps with rdpwrapper and we are happy with it. But unfortunately users started playing with the settings and ACL is not strong here. I tried playing with the HTML file, CSS and nothing seems to hide the settings. Also could you please guide me to create my own SSL using letsencrypt or certbox using NGINX. I tried several times and no luck. Much appreciated for your wonderful program and contributions and would highly appreicate your prompt response.

Launch remoteapp from command line api

Hi,
Firstly congratulations on a wonderful tool that you have made and launched on GitHub. very helpful.

If I add the machine to a domain, add the RDS Role, connection broker, Add a Remote app collection and then use a published app, I can get the connection to the app (and not the full Remote desktop) exactly like i want it using the syntax below with the hashed password etc..

https://myserver/Myrtille/?__EVENTTARGET=&__EVENTARGUMENT=&server=server&domain=domain[optional]&user=user&passwordHash=passwordHash&program=program[optional]&width=width(px)[optional]&height=height(px)[optional]&connect=Connect%21

But I can avoid all the lengthy setup of RDS role, adding to domain, connection broker etc. and make a simple registry entry to get the remote app defined.

I can just add registry entries for the apps i want to publish - like in the image below.

image

Now if I call this program that i have manually published using the registry entry using a RDP file (like below)- it works like a charm and notepad from the remote server opens on the local machine as a remote app.

allow desktop composition:i:0
allow font smoothing:i:0
alternate shell:s:rdpinit.exe
devicestoredirect:s:*
disableremoteappcapscheck:i:1
drivestoredirect:s:*
full address:s:192.168.86.149
prompt for credentials on client:i:1
promptcredentialonce:i:0
redirectcomports:i:0
redirectdrives:i:0
remoteapplicationmode:i:1
remoteapplicationname:s:Notepad
remoteapplicationprogram:s:||Notepad
span monitors:i:1
use multimon:i:1

The problem is that if i use the API

https://myserver/Myrtille/?__EVENTTARGET=&__EVENTARGUMENT=&server=server&domain=domain[optional]&user=user&passwordHash=passwordHash&program=program[optional]&width=width(px)[optional]&height=height(px)[optional]&connect=Connect%21

and call the same manually published app (from registry that works using the RDP file) we get a full remote desktop and not the remotely published app.

Any great ideas on this. and if I call this URL in a Chrome window as an app, then I can get the window to resize to the size of the remote app window being published.

Hope you got the idea, Thanks in advance.

Please let me know how I can donate to this program.

MSI installer

Add an MSI installer that will unpack files in Program Files and create a task in the scheduler to autorun the web interface.

It is advisable to add an uninstaller.

[Security] Any user can edit RemoteApps

I have several accounts without administrator rights. Some of these accounts do not have RDP access and have a very simple password.

I decided to try to log into the Web interface under such an account and was able to edit the RemoteApp list (as if I were an administrator).


Please add a check for user rights so that users without administrator rights can only download RDP files and use the WEB channel.

Implement full Windows version/edition detection

Currently, you will be notified if the Windows edition detected is Home or Core.

This does not cover all incompatible Windows releases, such as Windows 7 or 8 Professional. I ignored these in the first instance because adding detection for Professional would exclude Windows 10 Professional (which is compatible). Compatibility list.

Need to implement detection of incompatible versions and editions in js/winver.js.

Web interface not working with IIS HTTP Proxy

Decided to deploy rdpx on ports 80 and 443 via IIS URL Rewriting so as not to disable other IIS based sites.
I used a proxy not for the root, but for /RemoteAppX (RAWeb is hosted in /RemoteApp and functions normally)

Screenshot

ProxyResult

web.config from /RemoteAppX:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                    <match url="(.*)" ignoreCase="true" />
                    <action type="Rewrite" url="http://127.0.0.1:8080/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

UPD I found the reason (but not the solution):
Requests are coming in correctly.
In the HTML code of the response, the links go as if the proxy was running from the root directory "/".

I am looking for options for replacing the answer ...

IIS URL Rewriting: https://www.iis.net/downloads/microsoft/url-rewrite

Application request routing: https://www.iis.net/downloads/microsoft/application-request-routing


UPD: You can also suggest alternative solutions on how to get rdpx to work on IIS.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.