# Setting Up Windows Server for High-Density Robots

> Using robots in a High Density Robot deployment allows you to make use of a single Windows Server Machine to run multiple automations at the same time in separate user sessions. For this, some configurations have to be done on the Windows Server Machine first, then you need to set up the environment in Orchestrator.

Using robots in a High Density Robot deployment allows you to make use of a single Windows Server Machine to run multiple automations at the same time in separate user sessions. For this, some configurations have to be done on the Windows Server Machine first, then you need to set up the environment in Orchestrator.

The steps are described below:

1. Install Remote Desktop Session Host to enable the Windows Server machine users to access virtual desktops, session-based desktops, and RemoteApp programs.
2. Add the users that are going to use the machine (and are going to be used as Robots).
3. Enable the High-Density Robots feature in UiPath.

After performing these steps, deploy your Robots as described [here](https://docs.uipath.com/orchestrator/v2023.4/docs/managing-robots-classic-folders#section-creating-a-robot).

## 1. Install Remote Desktop Session Host

1. Open Server Manager.
2. In the **Dashboard** panel, click **Add roles and features**. The **Add Roles and Features Wizard** is displayed.
3. Follow the wizard (click **Next**) until you reach the **Select Server Roles** step.
4. In the **Roles** section, select the **Remote Desktop Services** option and click **Next**.

   ![docs image](https://dev-assets.cms.uipath.com/assets/images/robot/robot-docs-image-102615-eff1503f.webp)
5. Follow the wizard until you reach the **Select Role Services** step, without changing the displayed settings.
6. In the **Role Services** section, select the **Remote Desktop Session Host** option. A dialog box is displayed prompting you regarding some required features.
   
   ![docs image](https://dev-assets.cms.uipath.com/assets/images/robot/robot-docs-image-103241-32fff4b2.webp)
7. Click **Add Features**. You are returned to the wizard.
8. Follow the wizard until the **Confirm Installation Selections** step and click **Install**. The feature is installed (restarting the server might be required).
   :::note
   **Remote Desktop Session Host** option is a Microsoft paid service.
   :::
   :::important
   In order for RDP sessions to work correctly, make sure that Network Level Authentication for RDP is enabled. This is done from: **Computer Configuration** – **Administrative Templates** — **Windows Components** — **Remote Desktop Services** — **Remote Desktop Session Host** — **Security** — **Require user authentication for remote connections by using Network Level Authenticatio**.
   :::

## 2. Adding Users

You need to add the users that can connect to that machine (they do not need administrator rights). These users are the ones that are also going to be used as Robots.

1. Open **Computer Management**.
2. In the left panel, navigate to **Computer Management (Local) &gt; Local Users and Groups &gt; Groups**. The right panels are updated accordingly.
3. Double-click **Remote Desktop Users**. The **Remote Desktop Users Properties** window is displayed.
4. Click **Add**. The **Select Users, Computers, Service Accounts, or Groups** window is displayed.
5. In the **Enter the object name to select** field, add users from your domain, under which the Robots will be able to access the machine.
6. Click **OK**. The configuration is saved and the **Select Users, Computers, Service Accounts, or Groups** window closes.
7. In the **Remote Desktop Users Properties** window, click **Apply** and **OK**. Your settings are saved and the users you just added will now be able to login to the Windows Server machine.

## 3. High-Density Robots Feature in UiPath

1. [Create a machine template:](https://docs.uipath.com/orchestrator/v2023.10/docs/managing-machines) **Tenant** &gt; **Machines** &gt; **Machine Template**.
   :::important
   Assign the necessary runtimes to the template. A template with X number of runtimes sets aside X licenses from the tenant's pool of licenses for each workstation connected to Orchestrator using that template. This allows you to execute X processes concurrently on each such workstation.
   :::   
   Say you assigned 2 Production (Unattended) and 3 Testing runtimes to a machine template. Three workstations connected to Orchestrator using that machine template withhold 6 ( 2 Production (Unattended) x 3 workstations) Production (Unattended) and 9 (3 Testing x 3 workstation) Testing licenses from the tenant's pool of licenses. This enables you to execute a number of 2 unattended, respectively 3 Testing processes, concurrently on each such workstation.
2. Connect your machines to Orchestrator using the key generated by a machine template. [See here how to connect the UiPath Robot to Orchestrator.](https://docs.uipath.com/orchestrator/v2023.10/docs/connecting-robots-to-orchestrator)
3. [Configure the user entity:](https://docs.uipath.com/orchestrator/v2023.10/docs/managing-users) set its role at the tenant level, enable automatic robot creation, set the username and password used to log on to the machine such that the Robot can authenticate, select the credential store, and configure the execution settings of the Robot.
   :::important
   Make sure to set the **login to console** option to **no**.
   :::
4. [Assign the user and machine template to one or multiple folders](https://docs.uipath.com/orchestrator/v2023.10/docs/managing-folders) while choosing the user's roles at the folder level.
   :::important
   This gives access to that folder and makes the processes deployed there available and ready to get executed.
   :::
5. [Start a job](https://docs.uipath.com/orchestrator/v2023.10/docs/managing-jobs), configuring its priority and runtime type. You can specify the user under which it gets executed, or you can leave it undefined.
   :::important
   Unattended jobs are dynamically executed by automatically pairing the users and machines in your environment. If the user is specified, only the machine is dynamically allocated. If no user is specified, both are dynamically paired to each other. The latter is the optimal job execution mechanism, as it optimizes resource consumption.
   :::

### Modern and Classic Folder

#### Modern

In order to configure High Density Robots in Modern Folders, unattended robots have to be created for the users that are going to benefit from this feature. In addition to this, multiple runtimes are needed to be assigned to the corresponding machine templates (the ones providing the key used to connect the Robots to Orchestrator).

:::note
In modern folders, the machine name does not need to be an exact match, you can use placeholder names such as "HD Machine". In this scenario, the unattended robots are floating, not standard, meaning that the deployment is easier by design.
:::

#### Classic

For Classic Folder deployments, the machine name has to be an exact match of the machine that is used to run the automations. When creating the Robots, to ease the configuration process, select the **Create Another** checkbox to save the values in the input fields (username, password, machine name).
