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
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
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
RDP / Console selection
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...
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.
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...
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.
Re: RDP / Console selection
I shoud do some test. But this pre selection works in reverse connection too?
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
Re: RDP / Console selection
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>=
session selction is a,b,c.... not 1,2,3
http://www.uvnc.eu/download/1210/winvnc_RDPtest.zip
win32 bin for vista>=
Re: RDP / Console selection
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)
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
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)
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
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
Re: RDP / Console selection
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
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
Re: RDP / Console selection
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:
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:
Re: RDP / Console selection
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.
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.
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
Re: RDP / Console selection
added
ultravnc.ini
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)
ultravnc.ini
Code: Select all
[admin]
alternate_shell=
rdpmode=1
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)
Re: RDP / Console selection
I don't know what to enter. There's a bug regarding the choices, see:
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
Re: RDP / Console selection
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
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
Re: RDP / Console selection
Works like a charm. Can't find something is going wrong
EDIT: Found something.
Suggestions:
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.
Re: RDP / Console selection
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:
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.
After that I closed VNC and reconnected via RDP. While being connected via RDP I started uvnc and saw:
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.
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
Re: RDP / Console selection
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.
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.
Re: RDP / Console selection
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:The problem is that after reboot, there is always only one window, the console session.
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 sessionsRudi De Vos wrote:That wil be a limitation, max 25 active users.
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).Rudi De Vos wrote: Artifact where related to the new desktop duplication, but that's win8>=, you are using a Windows Vista (6.0)
If we don't write tomorrow, I wish you a merry Christmas Rudi!
Cheers Greg.
Re: RDP / Console selection
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?
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
Re: RDP / Console selection
Yep, first version showed all sessions.
Now only a disconnected console is allowed.
Next changes are for after Christmas.
A Merry Christmas to all.
Now only a disconnected console is allowed.
Next changes are for after Christmas.
A Merry Christmas to all.
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
Re: RDP / Console selection
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
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
Re: RDP / Console selection
With executable from 25.12. console session is still completely missing:
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
Re: RDP / Console selection
Update
http://www.uvnc.eu/download/1210/winvnc_RDPtest6.zip
Removed filter to allow all session except (0=service and 65536=some internal session)
http://www.uvnc.eu/download/1210/winvnc_RDPtest6.zip
Removed filter to allow all session except (0=service and 65536=some internal session)
Re: RDP / Console selection
The above described problems are solved. Found one more bug. Try:
winvnc seems to be started again in session0 instead of being started in console session.
- 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
winvnc seems to be started again in session0 instead of being started in console session.
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
Re: RDP / Console selection
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.
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.
Re: RDP / Console selection
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.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
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....
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
Re: RDP / Console selection
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.
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.
Re: RDP / Console selection
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)
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)
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
Re: RDP / Console selection
b) is really acceptable as long rule no. 3 will be implemented
- Rudi De Vos
- Admin & Developer
- Posts: 6865
- Joined: 2004-04-23 10:21
- Contact:
Re: RDP / Console selection
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
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
Re: RDP / Console selection
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.
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.