Hi all,
I've been doing some research into the architecture of Windows Terminal Services lately and it strikes me that it would be entirely possible to develop a pack of drivers and services to present a Windows Terminal Server via the VNC protocol instead of/as well as the RDP (native windows remote desktop protocol) or ICA (god knows what it actually stands for but the citrix protocol).
Essentially, this would mean you could connect to any terminal services-enabled system, login using the graphical prompt, and get your own desktop, which if disconnected from you could reconnect to exactly as it was at any time. It would decouple the user numbers from enforced TS-Client Access licensing since VNC has no inherent support for licensing (and forcing it on the protocol would defeat the purpose). Not that I'm endorsing exceeding licensed limits on clients of course
Using UVNC specifically as a starting codebase would also ensure later availability of direct login credentials (Winlogon), encryption on the wire, and file transfer.
Should the VNC protocol implementation ever exceed any aspect of RDP in functionality, you'd also avoid the requirement to go to a much more expensive product (eg, Citrix) with yet another layer of client licensing on top.
This would NOT enable multiple-desktop functionality on non-TS systems (ie, 2000/XP/Vista) - it relies on the terminal services components to function (TS has to do all the desktop setup stuff - it's a deep-seated part of windows). Under XP Pro/Vista Bus/Ultimate it would basically do exactly the same as RDPing to it does now, just with VNC as the protocol and client.
So... Brainstorming...
The structure of WTS is as follows:
====WINDOWS COMPONENTS===
(stuff that's provided by windows and we needn't reinvent)
Terminal Server service (windows component)
- Acts as listener on TCP port, does associations of sessions to users
Session Manager (windows component)
- does setup/teardown of desktop login sessions, reconnects new connections to existing, disconnected sessions
CSRSS (windows component)
- manages the login session from windows' point of view (fires off the login process, starts the desktop, etc
===VENDOR/PROTOCOL-SPECIFIC COMPONENTS===
(Stuff we need to write)
Winstation Driver
- Does session setup/negotiation, and "de-multiplexes" the session once setup into Video, Keyboard and Mouse channels (and any other channels in the protocol, eg clipboard, file transfer)
Video Driver
- Presents to the terminal services session as an ordinary video device, but processes and hands off video data to be encapsulated into the protocol (VNC in our case) and sent to the client
Input Driver(s)
- Presents to the terminal services session as ordinary keyboard/mouse devices, but actually receives input from the protocol connection (VNC in our case) via the Winstation Driver
Tentative Roadmap
----------------------
A simple NT-Kernel-mode VNC mux/demuxer would need to be written to form the basis/template for a Winstation driver. Perhaps for testing purposes reading 'screen' data from a file, dumping 'input' to a logfile and connecting via named pipes or something.
The UltraVNC Mirror driver would need to be extended into a full video driver, outputting both into a framebuffer (for screen refreshes) and handing off application updates "upstream" (towards the client). Much like normal really. Alternatively, the framebuffer can be dropped with the disadvantage that full screen refreshes require a redraw message to all session apps (slower but less memory). This can be tested in a normal desktop environment. Where possible it should be kept in sync with the existing UVNC driver.
A simple shim combined keyboard/mouse driver would need to be written to receive input events from the client and pass them on as keyboard/mouse events to the session. This can be tested in a normal desktop environment, and might be worthy of passing back upstream to UVNC as an input optimization.
The big step is this:
Either,
porting the WINVNC service to NT-Kernel-mode, or,
reimplementing UVNC's WINVNC service in NT-Kernel-mode
to serve as the Winstation driver.
After this, there should be a working (if barebones) VNC alternative to RDP and ICA as a WTS connection protocol.
Anyway. Let me know what you all think
[mod=494,1225495434]moved from vnc related to feature request[/mod]
Celebrating the 22th anniversary of the UltraVNC: https://forum.uvnc.com/viewtopic.php?t=38031
Update: UltraVNC 1.4.3.6 and UltraVNC SC 1.4.3.6: https://forum.uvnc.com/viewtopic.php?t=37885
Important: Please update to latest version before to create a reply, a topic or an issue: https://forum.uvnc.com/viewtopic.php?t=37864
Join us on social networks and share our announcements:
- Website: https://uvnc.com/
- GitHub: https://github.com/ultravnc
- Mastodon: https://mastodon.social/@ultravnc
- Bluesky/AT Protocol: https://bsky.app/profile/ultravnc.bsky.social
- Facebook: https://www.facebook.com/ultravnc1
- X/Twitter: https://x.com/ultravnc1
- Reddit community: https://www.reddit.com/r/ultravnc
- OpenHub: https://openhub.net/p/ultravnc
Update: UltraVNC 1.4.3.6 and UltraVNC SC 1.4.3.6: https://forum.uvnc.com/viewtopic.php?t=37885
Important: Please update to latest version before to create a reply, a topic or an issue: https://forum.uvnc.com/viewtopic.php?t=37864
Join us on social networks and share our announcements:
- Website: https://uvnc.com/
- GitHub: https://github.com/ultravnc
- Mastodon: https://mastodon.social/@ultravnc
- Bluesky/AT Protocol: https://bsky.app/profile/ultravnc.bsky.social
- Facebook: https://www.facebook.com/ultravnc1
- X/Twitter: https://x.com/ultravnc1
- Reddit community: https://www.reddit.com/r/ultravnc
- OpenHub: https://openhub.net/p/ultravnc
Windows Terminal Services via VNC (instead of RDP/ICA)
-
- Posts: 6
- Joined: 2008-08-08 14:00
Windows Terminal Services via VNC (instead of RDP/ICA)
Last edited by The1stImmortal on 2008-10-31 23:23, edited 1 time in total.
Re: Windows Terminal Services via VNC (instead of RDP/ICA)
i wondered why nobody had thought of this myself, and would be more than willing to offer my limited assistance.
I'm not a programmer, but do understand various sides of windows that may be of benefit, plus i'm good at the conceptual side of things.
this would work in nicely with the vnc2me line of (open source) products that i'm planning (well have ideas for, but will see whether they eventuate or not).
keep me in the loop (check your PM's for my email address)
I'm not a programmer, but do understand various sides of windows that may be of benefit, plus i'm good at the conceptual side of things.
this would work in nicely with the vnc2me line of (open source) products that i'm planning (well have ideas for, but will see whether they eventuate or not).
keep me in the loop (check your PM's for my email address)
ask a silly question and remain a fool for 5 minutes...
don't ask, and remain a fool for life - JDaus 2003
without imperfections, neither you nor i would exist - Steven Hawkins
__
JD
SCPrompt - OpenSource Free Remote Screen\Desktop Sharing Solution
SecureTech.com.au
don't ask, and remain a fool for life - JDaus 2003
without imperfections, neither you nor i would exist - Steven Hawkins
__
JD
SCPrompt - OpenSource Free Remote Screen\Desktop Sharing Solution
SecureTech.com.au
-
- Posts: 6
- Joined: 2008-08-08 14:00
Re: Windows Terminal Services via VNC (instead of RDP/ICA)
Just FYI, I wrote the above at about 4am and it may not make much sense in parts
At this point I'm hoping to just bounce the concept around a bit and find ppl with more experience with TS or better implementation ideas
So far as I can tell, the TS protocol API is pretty much totally undocumented so I may have to pick the brains of some WINE/ReactOS guys I know too
I'm *strongly* attracted to UVNC as a base for all this, not necessarily for the codebase per se, but rather the protocol extensions and strong windows-orientation (ie UVNC on-the-wire). Ideally, this would all end up being implemented (at the bottom level) as modules of and alternate build options for UVNC.
I'm having a look at vnc2me now Ta for the pointer
At this point I'm hoping to just bounce the concept around a bit and find ppl with more experience with TS or better implementation ideas
So far as I can tell, the TS protocol API is pretty much totally undocumented so I may have to pick the brains of some WINE/ReactOS guys I know too
I'm *strongly* attracted to UVNC as a base for all this, not necessarily for the codebase per se, but rather the protocol extensions and strong windows-orientation (ie UVNC on-the-wire). Ideally, this would all end up being implemented (at the bottom level) as modules of and alternate build options for UVNC.
I'm having a look at vnc2me now Ta for the pointer
Re: Windows Terminal Services via VNC (instead of RDP/ICA)
vnc2me is my pet project, but i have been playing with SSH tunneling for some time, and the idea i have is to get more application using SSH tunneling, thus allowing cross compatibility.
i just found an awesome open-source viewer application that uses flash (called flashlight-vnc) as its medium. most people have flash installed on their computers (including mac and linux users), allowing for easy viewing of collaboration screens.
(sorry the above is a little off-topic)
i just found an awesome open-source viewer application that uses flash (called flashlight-vnc) as its medium. most people have flash installed on their computers (including mac and linux users), allowing for easy viewing of collaboration screens.
(sorry the above is a little off-topic)
ask a silly question and remain a fool for 5 minutes...
don't ask, and remain a fool for life - JDaus 2003
without imperfections, neither you nor i would exist - Steven Hawkins
__
JD
SCPrompt - OpenSource Free Remote Screen\Desktop Sharing Solution
SecureTech.com.au
don't ask, and remain a fool for life - JDaus 2003
without imperfections, neither you nor i would exist - Steven Hawkins
__
JD
SCPrompt - OpenSource Free Remote Screen\Desktop Sharing Solution
SecureTech.com.au
Re: Windows Terminal Services via VNC (instead of RDP/ICA)
exist as xrdp but for linux
need porting the code for windows.
http://xrdp.sourceforge.net/
there exist a alpha test of the code for windows
http://sc.uvnc.com/V2/winvnc+rdp.zip
source code on request to Rudi if available ?
[topic=269][/topic]
need porting the code for windows.
http://xrdp.sourceforge.net/
there exist a alpha test of the code for windows
http://sc.uvnc.com/V2/winvnc+rdp.zip
source code on request to Rudi if available ?
[topic=269][/topic]
UltraVNC 1.0.9.6.1 (built 20110518)
OS Win: xp home + vista business + 7 home
only experienced user, not developer
OS Win: xp home + vista business + 7 home
only experienced user, not developer
Re: Windows Terminal Services via VNC (instead of RDP/ICA)
Awesome thanks redge ... will try it out when i get some time thanks ...
ask a silly question and remain a fool for 5 minutes...
don't ask, and remain a fool for life - JDaus 2003
without imperfections, neither you nor i would exist - Steven Hawkins
__
JD
SCPrompt - OpenSource Free Remote Screen\Desktop Sharing Solution
SecureTech.com.au
don't ask, and remain a fool for life - JDaus 2003
without imperfections, neither you nor i would exist - Steven Hawkins
__
JD
SCPrompt - OpenSource Free Remote Screen\Desktop Sharing Solution
SecureTech.com.au