MsraCon.exe (Sharer) shares it's windows desktop
to another host running the MsraViewer.exe (Viewer)
Works only in a local area Network (Intranet).
It is not possible to connect from the Internet.
This software and C# source code commes without any warrenty!
Use it at your own risk. It confer no rights if it cause any demages.
Don't use it in productive environments!
The Sharer host has to run MsraCon.exe.
The Viewer host connect with MsraViewer.exe to the Sharer host.
After windows authentication the Sharer is starting a MS Remote Assistence Session.
It sends a MSRA invitation string to the Viewer.
The Viewer connects with this string and a secret password to the Sharer.
The Sharer then shares the windows desktop to the Viewer.
The Software was build for C# learning proposes.
GNU GENERAL PUBLIC LICENSE Version 3
https://sourceforge.net/projects/msracon/
For Windows Workgroup (NTLM):
A local user with the same name and password has to exist on the Sharer and on the Viewer host.
On the Sharer host the user has to be member of a local Group "MsraUserGroup"
For Windows Active Directory (KERBEROS):
The Viewer User has to be member of a Global Active Directory Group "MsraUserGroup"
The Active Directory Group Policy has to allow Microsoft Remote Assistence for the AD User.
1 ) Run MsraCon.exe to share the windows desktop.
2) Optional :To automaticaly register new Sharer hosts.
Set the path to a central host.xml file in "MsraCon.exe.config".
<setting name="HostFilename" serializeAs="String">
<value>\\Servershare\path\hosts.xml</value>
</setting>
The file should be located on a file server share.
The users need write permission for the file.
Configure the same host.xml file for all Viewer and Sharer hosts.
1) Run MsraViewer.exe to view the shared windows desktops.
Click Menu "New > Connect" and enter the network hostname of the Sharer host.
2) Finished - You should see now the desktop of the Sharer host.
3) Optional: To allow the Viewer to save the connected hosts into a file.
Run MsraViewer.exe as administrator.
In Viewer menu "Settings > Hosts XML Filename" set the same central file as above.
Additionally set this property to True
<setting name="AddHostToHostfile" serializeAs="String">
<value>True</value>
</setting>
Change the shared MS Remote Session password in the Sharer and Viewer configfile.
<setting name="LockIt" serializeAs="String">
<value>remotepw</value>
</setting>
<setting name="IsEncrypted" serializeAs="String">
<value>False</value>
</setting>
To encrypt the password set "IsEncrypted" to False.
Open and close the Sahrer and Viewer application one time as administrator.
The password in the Viewer and in the Sharer configfile has to match.
Otherwise no desktop is shown to the Viewer.
The Sharer will listen on Port 8110 for incomming Viewer connections.
Additionally the ports for Microsoft Remote Acess has to be open.
The AD Group Policy has to allow Microsoft Remote Assistence for the Viewer users.
1) Test if the MSRA Connection work
Run this from commandline:
msra /offerra sharerhostname
2) Test local connection with Telnet to MsraCon.exe TCP Listener on the Sharer host.
Run on Sharer Host: telnet sharerhostname 8110
3) Test the remote connection over the network from Viewer to Sharer.
Run on Viewer Host: telnet sharerhostname 8110
If you can connect to the TCP-Listner on the Sharer and the MSRA remote session was working,
there should be no problems.
Else check if firewalls ports are open and if the MSRA Group Policies allow to connect.
The windows User has to be authenticated, and has to be member of a windows Group "MsraUserGroup".
The Group name can be changed in the configfile. Check if errors are shown in the Viewer and Sharer log.
Take control of mouse and keyboard does not work if MsraCon is running in a RDP session.
If the sharer has more then one Networkcard, set the default listener IP Adress in the configfile.
Change the MSRA default password "remotepw" in the configfiles! Set the IsEncrypted flag to "False".
Run the program one time as administrator to encrypt and save it in the config file.
MsraCon uses the MS Negothiatestream Class for the Windows Authenticatin part.
https://msdn.microsoft.com/en-us/library/system.net.security.negotiatestream(v=vs.110).aspx
Don't know how secure the MS Negothiatestream Protocol is, as i am no expert for this.
Ssl encryption with certificates would probably provide higher security.
This is not implemented yet. Deploying of certificates would make the program installation more complex.
The ssl part is commented out in the source code yet.
Remote Support
https://sourceforge.net/projects/remote-support/
KioskControl
https://github.com/Meitinger/KioskControl
Myrtille
https://cedrozor.github.io/myrtille/
HomieRenmotedesktop
https://github.com/lemked/homieremotedesktop