When the policy “Require local confirmation” is set to True, there may be a scenario in which, even though there is a person connected to the Agent machine, the RC connection fails immediately with error:
Unable to establish a remote control session:
The connection was rejected because the remote host requires somebody to Confirm the connection but nobody is available.
Client Automation - All supported versions.
When Remote Control is set to required a local confirmation, it checks for the connected users on the target RC Host machine (as a way to determine that there is actually someone on the machine), this is verified by checking the sessions logged on the machine. This is made by using using a Windows built in call "query sessions". In order to show the confirmations pop-up, it needs to be a user connected, which is confirmed when a 'console' session is in Active state.
When a session like this is found on the machine, the local confirmation pop-up can be shown, because it assumes that someone is present on the machine, but if a connection is made to a machine using RDP, this won't create a 'console' session, it actually creates a 'rdp' session, but for the OS (Windows) this is a different kind of session, which doesn't necessary means an actual person is present on the machine.
As example, when connecting to a machine through RDP, this kind of session can be seen:
When this happens, Remote Control won't show the confirmation pop-up since there is none present on the machine, that's why it fails immediately:
But if a connection is made directly to the machine, even using the exact same user, the session will be considered as 'console', which will let the pop-up to be shown correctly:
This difference was implemented in Windows 7, before that (Vista and older OS) all the sessions were considered the same.