How to set and increase a UiPath robot's screen resolution?

Good evening friends, please I need your help:

I have uipath running in a virtual machine with windows 2012r2, I have problems with the resolution when trying to run the robot unattended. I’ve done my research and found several fixes by modifying the uipath.settings file and in the orchestrator. I have tried those methods but I still have problem: Could someone please remotely orient me and see my configuration? I already have two days on this and still can’t fix it.


Hi @Lynx ,

Could you please let us know what are the problems that you are facing when the Robot is executed under the current Resolution ?

If there are any error messages generated, if possible please send the Screenshots.

Hi @Lynx ,

Please check whether you came across this :point_down:

image

1 Like

Here I attach some screenshots of the error messages. When I run it being in the remote desktop, everything works ok, but when I do it without using the remote desktop that error occurs, of the whole process flow it only opens the url but cannot find the input.



Hi @Lynx ,

Can we make another Check on How are we Closing the Remote Desktop, Is it Just Closing the Remote Desktop Window or are you Signing out of the Remote Desktop ?

It is important to note that Sign out needs to be performed on the Remote Desktop for an Unattended Robot to execute properly in the Remote Desktop.

Just Closing the Remote Desktop Window. I also tried closing the session (windows-Sign out) does not work either, in this case I get the pending “status” message.

@Lynx

Did you get a chance to look into below thread?

Hope this may help you

Thanks

Yes, I did the uipath process at a resolution of 1680x1050, I configured that resolution also in the uipath.settings file and also in the orchestrator, but the robot still does not work. Can someone help me remotely to view my settings?

I did a test guiding me from here:

When I am connected to the server using the remote desktop, it works perfect and takes a screenshot, but when I close the remote desktop with the user session active and scheduling a trigger, it doesn’t work and the log records the following error:


Are you sure it’s a resolution issue? I bet you’re using Hardware inputs for your Type Intos. Try Simulate Type.

In the last capture I commented on the entire logging flow, I only left two activities, the one to capture the screen and the one to save the image. When I am connected to the server by remote session the normal orchestrator trigger is executed. But when I set it to run in 10 min and then I exit the remote desktop session and then re-enter the session after 20 min but I verify that the execution has failed.

Don’t exit the session. SIGN OUT. You are leaving the session open and Orchestrator can’t use it.

I did some testing on this a while back which can be read here

Short summary

  • RDP in Console mode will connect to the remote host on Session 0 (typically this will be 800x600 or 1024x768)

  • RDP in Interactive (Console: False) behaviour will depend on on your remote hosts Policies / Configurations. Which can be configured to only allow one session per credential, so any new session will take over an existing session if it exists, or it could be configured to allow multiple sessions for the same credential/profile. See above link for resolution test scenarios

  • RDP by default will suppress the UI essentially virtually locking the screen if you minimize the RDP Window (Look up RemoteDesktop_SuppressWhenMinimized or see Robot - Executing Tasks in a Minimized RDP Window)

  • Closing the RDP Window/Session will by default lock the session interfering in a similar way to minimizing the window. In order to work around this you need to either A) Leave the Window open until the Job is complete B) Send the Session to the Console by issuing the command tscon %sessionname% /dest:console. B isn’t ideal from a security perspective as you are leaving the console session unlocked and vulnerable to someone that physically gains access to the host or the console view in the VM Controller.

As noted, there wouldn’t be an issue taking over an existing session if you didn’t logout, but it’s always nice to ensure you start from a fresh session or if nothing else to free up memory. This is something I do frequently during Development, Testing, or I want to observe the job in real-time in production, it’s not recommended, but if you are connecting to the session simultaneously you should definitely perform some tests of your own to become familiar with the nuances and issues you can run into.

Reading over the topic the first thought that came to my mind is your User/Robot configured correctly in Orchestrator? Taking a Screenshot is a foreground activity as such you would need to provide the credentials. If you are only doing Background activities / process, this would not be required.

image

I would agree with @postwick, with the information as presented I would say resolution is a red herring especially if you’ve reduced your process to only taking a screenshot and saving the screenshot to disk.

Thank you all very much for responding, and please I would appreciate if you continue to help:

What I am looking for is the following:

I want a UiPath bot to run unattended on the cloud server without having to connect from my home latop. The home laptop I only connect by remote desktop to see if the bot worked or not.

image

@codemonkee read your threads that you recommended, also had already done some similar tests.

To achieve my goal I have performed the following tests:

Prior verification:
Verify that the orchestrator trigger works and the bot executes the bot from start to finish, I do this connected from my laptop at home. Everything works great.

  1. I configure the trigger to run in 5 min from my latop, then close the remote desktop and try entering the server after 10 min. The result is error, I tried with a screen capture (here, it does not capture anything) and with a web login (here, it manages to open the page but does not find the “input” to enter the user).

  2. I configure the trigger to run in 5 min from my latop, then I close the session completely -Sign Out- (as @postwick Paul advised me). and I try entering the server after 10 min. The result is a message that says “pending” that I see in the orchestrator, it seems that the orchestrator cannot open the session.
    ==========================================
    @codemonkee, you mention the following:

"That’s correct, my usage of“ Interactive Session ”is referring to a RDP session that is not logging into the host’s console by setting the Login to Console: False. When thinking of policies that is referring to the Windows Host’s Group Policies, couple examples .

Computer Configuration \ Administrative Templates \ Windows Components \ Remote Desktop Services \ Remote Desktop Session Host \ Connections
Restrict Remote Desktop Services users to a single Remote Desktop Services Session
Limit number of connections
Computer Configuration \ Windows Settings \ Security Settings \ Local Policy \ User Rights Assignment
Allow log on through Remote Desktop Services "

I would like to ask you regarding my case:

Is “Interactive Session” What I’m Looking For?
What details or settings would I be missing?

I say this because I want that bot to run at three in the morning and I don’t want to be turning on my latop to have an open session so that the bot can work.

I also configured User / Robot as follows:




On the other hand, I would like to know about “user mode” and “service mode”. These are related to my problem?

Okay I think I can guess what is going on, but lets take it one step at a time.

  • Your image indicates to me that you want to both Develop (Studio) and Run Processes (Robot) in an Unattended Mode, perhaps Attended as well on a remote host (Which happens to be a VM in a Cloud environment. Physical Vs Virtual is irrelevant in terms of a functional robot)

Let’s ignore Triggers for now, that should be one of the last steps as you can invoke an unattended Job from Orchestrator manually

So setting Console to True/False is about what type of session is being creating when a User (Robot/Person) connects to the remote host.

  • Console:False is using Session 0 of the remote host, this is like sitting down to a physical machine only a single person can use the machine at the same time (physically speaking). If another user comes along and logs in it takes over Session 0 by either logging the original user off or locking their session.
  • Console:True is connecting using a Interactive Windows Session, a virtual console if you will, by default Windows allows 2 simultaneous sessions before you need to introduce RDS and purchase CALs to support more simultaneous connections.

At this point I feel it is irrelevant as well as we are more concerned about a ‘Robot’ running a job successfully in an unattended state which could be done with either Console option. I’d also like to point out that the choice of connecting via Console/Session0 isn’t specific to the Robots, when you initiate an RDP connection to a remote host you also have the choice to create the connection in Console or Interactive depending on the RDP Client you are using, most modern clients will provide the option though they may label it differently.

As I’m reading through your recent post, this is where I was leaning is the problem and whether you have your Robot installation configured correctly. I’m going to ignore Studio and just focus on the Robot as the Robot can be installed stand-alone if you are not intending to Develop on the remote host.

So in order for a Robot to successfully run a job or more to the point be available to initiate a request to run a job the Robot must be available and reachable to do so.

  • User Mode - when you launch Studio or UiPath Assistant (Or legacy UiRobot) you are starting the UiPath.Service.UserHost.exe process. This is what is actively listening for jobs to run from Orchestrator or Assistant. If you log off or close your Assistant a Robot is no longer available to listen for a connection. If the user is still logged in and the process is still running, then it is available to try and run the jobs but depending on the type of job (Background / Foreground) and whatnot can affect what success of the job looks like.

  • Service Mode - means that you have Registered the Robot as a Windows Service so that the Robot is available and listening for commands as long as the host is running the the Service is Started whether a User is logged into the host or not. This service uses another process called UiPath.Service.ServiceHost.exe which is managed though services.msc.

So the first thing I would do is confirm how the robot was configured during the initial installation. I don’t believe it has been mentioned whether you are using Community (EXE) or Enterprise (MSI), I’m less familiar with the Community / Cloud aspects, but a recent change (last year or so) to Community was allowing community users to register a robot as a service and leverage unattended robots. With whichever installation method you used, you should be able to go into your Add/Remove Programs and modify the UiPath Install, but if not you might have to uninstall and install again.

Once the Robot is registered as a service you then should just need to confirm whether the Unattended Robot is going to use your personal credentials in Step 2 (Robot Setup) or if you are going to leverage another account/profile for the purpose of unattended Jobs. Either way it doesn’t make a difference to the run of the job and if you know the credentials for both you can still watch the job if that is a desire but keep in mind the points in my earlier post about the behavior and affects having two users connected to a single session can have.

Once you get here, I would log off all session from the remote host (relevant to UiPath) and then attempt to manually start a Job from Orchestrator (Ignore triggers and just Start a Job from the Processes or Job screen). To validate I would lean towards making a habit of reviewing the Job Status Details and Logs instead of remoting into the Unattended Robot’s User.

1 Like

It appears the download provided through Automation Cloud Portal is now a MSI for Community UiPathStudioCommunity.msi

If running this installer by UI you are presented with Quick or Custom installation, if doing the Quick installation it will install in User Mode by Default, so you’ll want to opt for Custom install.

Depending on if you plan on using Studio in this environment you’ll want to then choose Automation Developer or Unattended Robot. If you select Automation Developer you then also want to select the Advanced Settings as the default will install in User Mode.

After selecting the Advanced Settings, be sure to switch the Robot Installation Type to Service Mode. It’s up to you whether you want to “Automatically Start Assistant with Windows” or not, this is more of the Client / UI of the Robot Service and is not required for unattended Jobs, but gives you as a user a visual indicate to the status of the Robot Service and Connection to Orchestrator from the Client Host.

image

image

More details can be found in the following document.

1 Like

Yes , I only want to Develop (Studio) and Run Processes (Robot) in an Unattended Mode on a virtualized server in the cloud, no intervention from any person. Development can be on my laptop or in the cloud, but in the end, it should always run in the cloud without any intervention from me.

I tried both settings of setting Console to True / False, but it didn’t work for me.

Finally, I think that User Mode and Service Mode are related to the type of license, the first could be for Uipath community and the second for uipath Enterprice.

I don’t know if it’s too much trouble, but do you think I can give my uipath configuration a little bit?

A big hug and Happy New Year !!! Here in Peru there is still an hour and twenty minutes to midnight.

Best regards

Happy New Years to you as well.

This has changed over the last year or so, but User vs Service Mode still speaks to how the Robot Service is installed/registered in the client machine.

If you have not done so already, I would uninstall / reinstall UiPath on the remote VM Selecting the following options

  1. Automation Developer
  2. Advanced Settings
  3. Service Mode (and select “Automatically Start Assistant with Windows”, if desired)

Once you have the Robot registered as a Windows service, you should be on the right path to running an unattended job on your remote VM.

1 Like

I only have the community version, but I will try to get an enterprice version to test and leave any doubt, because when I put the type of installation that you recommend it asks me for a license. Thanks a lot !!!

If you are using the UiPathStudioCommunity.msi installer available from the Cloud Portal, then it should not be asking for a license directly during installation. When you launch Studio (At the end of the installation) it should ask you to connect to Orchestrator. If you did not install Studio and only the Robot you can manually launch Assistant and open the Orchestrator Settings.

If you opted to include Studio and if it asks you to Add License Key, select the More Options on the lower left corner which should present you with 3 options.

Select Connect to Orchestrator and provide your Orchestrator URL and Machine Key

image

1 Like