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
- 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

RDP / Console selection

Post Reply
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

RDP / Console selection

Post by Rudi De Vos »

As there are more and more people asking to be able to clone a service or real RDP instead of the console some piece of code was added.

The biggest challenge is adding it and to stay compatible with the current viewers.

We added a pseudo server...some bitmap that act as desktop.
( I only can draw text / rect and have a single char as input.... but this does the trick for preselecting a session)

On connection you first connect to a pseudo server, this give a 640x480 display, show sessions and request to select
a session a) b) c) etc...
Image
After you make a selection sample (b) the server is closed and restarted in the requested session(1).

You need to close winvcnc via trayicon or switch user to put the service back in pre-connect mode.

normal session0 should be invisible this is the service session and can not be used for vnc.
For testing purpose , to have a selection in case you don't have RDP we show it.
For release, we also need to check if you have an RDP AND console, else the whole pre-connect need to be disabled as
it doesn't make sense to show a window with a single choice.

Looking for people who can beta test on a rdp server. I'm current spending all time on programming .
A little knowledge of vnc is required else normal behaviour get reported as bugs.

R.
Sainsuper
40
40
Posts: 96
Joined: 2008-04-02 10:47

Re: RDP / Console selection

Post by Sainsuper »

I shoud do some test. But this pre selection works in reverse connection too?
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

Re: RDP / Console selection

Post by Rudi De Vos »

Modified so it also works with "service_commandline=-autoreconnect ID:12345678 -connect host"
session selction is a,b,c.... not 1,2,3

http://www.uvnc.eu/download/1210/winvnc_RDPtest.zip

win32 bin for vista>=
Sainsuper
40
40
Posts: 96
Joined: 2008-04-02 10:47

Re: RDP / Console selection

Post by Sainsuper »

Hi rudi,
i have done some test on windows 2008 with Terminal Server

after install winvnc as service i can see this preselection screen (in direct mode and in reverse mode)
Image

i can connect to session1 in console (letter b) but i'm unable to connect to rdp Sesson2 (letter c)
if i press letter c for session 2 (rpd session2 RDP-TCP#0 active of client1 user) connection drops for 10-20 secs and reconnect on this preselect screen.

i put here winvnc log if it can be helpful
http://www.tecnopc.info/imgforum/winvnc.log

regard
SainSuper
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

Re: RDP / Console selection

Post by Rudi De Vos »

Indeed, just installed an rdp server for testing and it didn't worked.
Actual vnc start just for a seconds in the rdp session and revert back to the console session.

fixed, update online
http://www.uvnc.eu/download/1210/winvnc_RDPtest2.zip

added removed session9999 at the end and session0
only show session that can be connected to
1)console active /disconnected
2)rdp session active
Sainsuper
40
40
Posts: 96
Joined: 2008-04-02 10:47

Re: RDP / Console selection

Post by Sainsuper »

Hi Rudi,

i have done other test.
Now i can connect to rdp session but only if console session is active. if console session is disconnect (console is on login screen) i'm unable to connect to rdp session client active.

When i connect to rdp session, remote control is very slow compared to console session.

sometime only on rdp session i see screen like this:
Image
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: RDP / Console selection

Post by Prisma »

First of all, great news, haven't seen this posting.
Perfect that you finally address this "problem". It's always been clear to me, that it's hard to introduce because of backward compliance. So I was feared to ask for it :)

I'll also do tests as soon as the latest problem is solved.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

Re: RDP / Console selection

Post by Rudi De Vos »

added
ultravnc.ini

Code: Select all

[admin]
alternate_shell=
rdpmode=1
alternate shell, when another shell is used then explorer.exe
sample alternate_shell=mycustomshell.exe
rdpmode (1 add session selection, 0 behave as before)

second try to get rid of the artifacts, please check if this behave better

http://www.uvnc.eu/download/1210/winvnc_RDPtest3.zip

Some changes for rdp.
You need to set in ultravnc.ini if you want to use the rdpmode
1) It always show the pre-connect window, even when only one session is active.
2) After the viewer disconnect, the server is restarted in preconnect mode
3) The winvnc.exe started to create the preconnect window now run in session0 ( service session)
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: RDP / Console selection

Post by Prisma »

I don't know what to enter. There's a bug regarding the choices, see:
Image
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

Re: RDP / Console selection

Post by Rudi De Vos »

LOL

session1 =b
session2=c
...
session 82=acsii a +82
So i can't use the session nummer +ascii a, need to find something else.
Never thought sessions would be higher then 25

Just wondering,
how does the console session become 82, long time no boot.

http://www.uvnc.eu/download/1210/winvnc_RDPtest4.zip
Possible connections are enumerated, the session nummer isn't used for the indication.
session82 would be b) in this case
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: RDP / Console selection

Post by Prisma »

Works like a charm. Can't find something is going wrong
EDIT: Found something.
  • I'm not able to login console anymore. I tested only RDP session, sorry. But now I notice, that even if just one console is available I'm not able to press a) to choose it. Nothing happens. Selecting RDP session if present is no problem.
  • It takes much to long until the second process is created or recreated in which context ever, system or user.

Suggestions:
  • Direct overtake console session when only console is available without session0 console first. For testing the behaviour is OK at the moment. But if you want to seamless integrate the new capabilities you should only run session0 console if necessary.
  • Console Always on top. On a Terminal Server you could have much more than 25 RDP Sessions. This would mean you wouldn't be able to login into console for e.g. administrative operations. At least one should be able to login into console.
  • Btw. What would we do if we want to join a session of terminal user 26? This is a helpdesk scenario which is classically solved by a terminal server supervisor with windows terminal server tools. But let's assume uVNC is the tool.
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: RDP / Console selection

Post by Prisma »

I had to login via RDP, hit restart service in services.msc, fast cut the connection, and then connect with uVNC. Then I saw only console, and then I was able to login into console.
After that I closed VNC and reconnected via RDP. While being connected via RDP I started uvnc and saw:
Image

Console is completely gone. And stays gone. With the artefacts noticed within the previous post and this post, I assume something goes wrong with refreshing the available console sessions.

Image
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

Re: RDP / Console selection

Post by Rudi De Vos »

Thanks for the feedback, i'm testing on a 2012 r2 and just launch a few rdp session te test.

preconnect windows or not.
1) You are correct that when there is only one session, you don't need a preconnect window.
The problem is that after reboot, there is always only one window, the console session. If later,
RDP sessions start, vnc stay connected to the console until the service restart winvnc.exe ( desktop part).
If you have the preconnect windows, the content is updated. The "preconnect" winvnc read the available
connections on screen update. If rdpmode=1-> preconnect

2) takes long... noticed it also, need to add some debug to see what the service is doing.

3)more then 25 sessions
We have a problem when more then 25 sessions are active
* alphabet is only 26
* there would also be no place on the screen to show them all
The preconnect vnc window use a bitmap as output and keycodes as input. There is no desktop behind this window,
no scroll, dialog can be used. You need to draw the bitmap yourself, pixel by pixel
That wil be a limitation, max 25 active users.

artifacts: Are they in the preconnect window or in a console/RDP window
Artifact where related to the new desktop duplication, but that's win8>=, you are using a Windows Vista (6.0)

Good idea to split the console, from the list and always show it first.
Then at least you can connect.
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: RDP / Console selection

Post by Prisma »

Rudi De Vos wrote:The problem is that after reboot, there is always only one window, the console session.
I don't see the problem after reboot. Once somebody has established a RDP session you just have to close console session, reconnect and you'll see the RDP session within preconnect window.
Rudi De Vos wrote:That wil be a limitation, max 25 active users.
Should be enough. The only easy thing I could imagine is to add numbers 0-9 also and spilt list into 2 columns if necessary. This would give us up to 35 sessions
Rudi De Vos wrote: Artifact where related to the new desktop duplication, but that's win8>=, you are using a Windows Vista (6.0)
Sorry, a misunderstanding. I didn't mean visual artefacts like Sainsuper reported. I did mean the behaviour of completely missing console session or not selectable console session within the preconnect window. The two pictures I posted above and the previous post (saying choosing console session does nothing).

If we don't write tomorrow, I wish you a merry Christmas Rudi!

Cheers Greg.
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: RDP / Console selection

Post by Prisma »

PS: a picture of Sainsuper shows a disconnected RDP session. I assume showing this connection is a bug of a previous version, isn't it? It wouldn't make sense to clone a disconnected RDP session, I wouldn't see anything, would I? I think the preconnect screen should only show connected RDP sessions. Am I wrong?
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

Re: RDP / Console selection

Post by Rudi De Vos »

Yep, first version showed all sessions.
Now only a disconnected console is allowed.
Next changes are for after Christmas.

A Merry Christmas to all.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

Re: RDP / Console selection

Post by Rudi De Vos »

http://www.uvnc.eu/download/1210/winvnc_RDPtest5.zip

This should be better.
*found and fixed:
-connection to inactive console failed
-without taskbar server was not auto closed on disconnect.
-session list only delete at end, else possible corruption
-hprocess need to be set to null after close else next call unexisting process
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: RDP / Console selection

Post by Prisma »

With executable from 25.12. console session is still completely missing:

Image
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

Re: RDP / Console selection

Post by Rudi De Vos »

Update
http://www.uvnc.eu/download/1210/winvnc_RDPtest6.zip
Removed filter to allow all session except (0=service and 65536=some internal session)
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: RDP / Console selection

Post by Prisma »

The above described problems are solved. Found one more bug. Try:
  • start RDP connection to server -> login
  • start VNC connection to server -> preconnect windows shows console + rdp
  • choose a) console + reconnect -> login to console
  • RDP connection is dropped (of course it is)
  • VNC connection is also dropped (of course it is, switch from logon screen to session)
  • restart VNC connection
You'll see again the preconnect window with only console session. This is not intended. Intended is to be already logged in console session.

winvnc seems to be started again in session0 instead of being started in console session.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

Re: RDP / Console selection

Post by Rudi De Vos »

The problem is indeed that we sometimes don't know what window ( preconnect/desktop) need to be started.

Current logic
1)-We alway start a preconnect unless the connection is initiated with a keypress.
2)-When a viewer close/disconnect, the server is also restarted in preconnect.

You have
a) console session3
b) rdp session 2

After you press a) you connect to the logon window in session3, but after entering the user/passwd the console
continue by opening a desktop in session1.
A session switch cause the server to restart and a server started " not initiated with a keypress" give a preconnect.

Adding a 3the rule will already fix this for ( remote managment rdp sessions)
3)-When there exist only one active session and this is the console session don't show the preconnect

Some things are easy for human, but to translate it in rules is harder.
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: RDP / Console selection

Post by Prisma »

Rudi De Vos wrote:The problem is indeed that we sometimes don't know what window ( preconnect/desktop) need to be started.
3)-When there exist only one active session and this is the console session don't show the preconnect
Nice, this also solves my future feature request of showing preconnect window only if necessary. Not necessary means behave like a "normal" winvnc. You should definitely implement this rule.
But imagine you have 3 session:

console session inactive
RDP session user Mary active
RDP session user Peter active

In this scenario I want to log into console with user Mary. Windows Logon into Mary -> RDP for Mary is dropped -> VNC is dropped -> Reconnect VNC.

With the above 3 rules, will I see really directly the Desktop of console session with user Mary? Following your explanation and the given info I would expect to see again the preconnect windows with

console session user Mary (<- maybe active?)
RDP session user Peter active

And this would be also not intended behaviour....
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

Re: RDP / Console selection

Post by Rudi De Vos »

Correct, but in case of 2 active sessions there is no simple rule.
In that case you need to pass the preconnect 2 x
preconnect -> console logon->preconnect -> console desktop.

When making the rules to complex you always have something wrong, with 2 active session you need to take the previous
connections in account, remember and reuse that state...to many options and exceptions.

We now have
rdmode = 0
Always console
rdmode = 1
works correct for rdp, and console with single active session ( like rdp in remote support mode)
rdp servers
rdp connections ok ( single session)
rdp server console 2x preconnect : Cloning the console when the console login and console desktop have a different session

This is acceptable, it just need to be commented so we don't get 100 forum messages about it.
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: RDP / Console selection

Post by Prisma »

Simplified, which of both assumtions is correct:
a) As long 2 or more RDP sessions are active I'm not able login to console?
b) As long 2 or more RDP sessions are active I have to do following to login to console:
1. choose console from preconnect
2. login with windows logon
3. choose console from preconnect again (which is now logged in)
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

Re: RDP / Console selection

Post by Rudi De Vos »

b) is correct
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: RDP / Console selection

Post by Prisma »

b) is really acceptable as long rule no. 3 will be implemented ;)
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6863
Joined: 2004-04-23 10:21
Contact:

Re: RDP / Console selection

Post by Rudi De Vos »

done, rule 3 added
If anyRDPsessionActive -> show preconnect, else connect direct to the console session.

On a real rdp server there is a new issue.

The server running in a console session doesn't restart himself when an rdp session become active.
The server running in preconnect doesn't restart in the console when the rdp become inactive.
Service need to monitor the sessions and restart the vnc server when the sesion status change... but current
the service doesn't know if a connection is active. You can't break a viewer/server connection because the session
status change.

Possible for a next update, this require a lot of testing and i need to get something finished before 15 jan.

http://www.uvnc.eu/download/1210/winvnc_RDPtest7.zip
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: RDP / Console selection

Post by Prisma »

Reported issues are solved.

But I noticed some real magic. I'm logged in to console via VNC. If I initiate a RDP session with the same user as console is logged in, the session is just overtaken and the VNC connection does NOT break. Which kind of magic is this? I would have expect the VNC connection breaks.
Tested on a Desktop PC. But on a Terminal server we should have the same effect as long the session per user is limited to 1 (group policy).

Cool. Is this since ever and by design? Or is this a new positive side effect? Vice versa it does sadly not work. Breaking RDP session let VNC freeze instead of seamless switching back to console.
Post Reply