Windows Server RDS Setup: Terminal Server & RemoteApp

When employees work with 1C and documents via RDP, companies often face chaos: overloaded servers, lost profiles, and licensing issues. We configure Windows Server RDS and RemoteApp to organize terminal access and isolate applications. Our team delivers turnkey projects—from architecture design to implementation and ongoing support—ensuring stable operation and scalability as your business grows.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1359
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1330
  • B2B Advance company logo design
    B2B Advance company logo design
    776
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1077
  • AIDER company logo development
    AIDER company logo development
    1022
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1113

Windows Server RDS Setup: Terminal Server & RemoteApp

We often run into this scenario: an accounting department of 30 people working in 1C, each via RDP to their own server — a mess of licenses, profiles, and performance. RDS solves these issues, but without proper architecture, 50 users can bring a single server to its knees, profiles get lost when adding a second host, and without RemoteApp users see other people's applications and files. Manual session management, file loss on crash, complexity of adding a new server — all drain time and budget. RemoteApp isolates applications, UPD preserves profiles, and the session broker distributes load. Let's break down how to build an RDS infrastructure that can handle the load and won't require constant tweaks. With over 50 RDS projects deployed and 5 years of experience, we guarantee stable operation.

Key Problems RDS Solves

Typical picture: 50 users, each running 1C and a browser, a server with 64 GB RAM "crashes" at lunch. Without a session broker, there's no load balancing — a new server is added but profiles don't sync. Without RemoteApp, users see the entire desktop and accidentally close other people's applications. Solutions: UPD for profiles (2–3 times faster logon than roaming profiles), RDS CAL for legality, GPO for automatic disconnections. Migrating from isolated workstations to RDS reduces licensing and administration costs by 30–40% — for a 50-user company, that's approximately $5,000–$8,000 annual savings.

Proper RDS Infrastructure Design

A minimal production configuration consists of three roles that can be combined on a single server (up to 20 users) or separated for high availability:

  • RD Session Host (RDSH) — server where sessions run. Calculation: ~2 GB RAM per light user (browser, office), ~4–6 GB per user with 1C or CAD.
  • RD Connection Broker (RDCB) — manages session distribution and reconnect. Without a broker, scaling is impossible.
  • RD Web Access (RDWA) — web portal for RemoteApp. Users go to https://rds.corp.ru/RDWeb and see only published applications.

For high availability, RDCB is deployed in a cluster (using Windows Failover Cluster), and RDSH servers are grouped into collections with Round Robin load balancing. Use PowerShell for quick installation of all roles on dev/SMB configurations:

# Install all roles on a single server (dev/SMB configuration)
Install-WindowsFeature -Name RDS-RD-Server, RDS-Connection-Broker, `
    RDS-Web-Access, RDS-Licensing -IncludeManagementTools

# Create deployment via Server Manager / PowerShell
New-RDSessionDeployment `
    -ConnectionBroker "rdcb01.corp.local" `
    -WebAccessServer "rdcb01.corp.local" `
    -SessionHost "rdsh01.corp.local","rdsh02.corp.local"

Follow these steps to set up RDS:

  1. Install the RDS roles using PowerShell or Server Manager.
  2. Configure RD Licensing: activate license server and add CALs.
  3. Create a session collection and add RDSH servers.
  4. Configure User Profile Disks for roaming profiles.
  5. Publish applications via RemoteApp.
  6. Apply GPOs for session limits and security.
  7. Test connectivity and monitor performance.

RDS Licensing Complexity

RDS requires two licenses: a standard server license and separate RDS CAL (Client Access License) — one per user or device. Without RDS CAL, the server runs for 120 days in grace period, then connections stop. The error No Remote Desktop License Servers available appears precisely because of misconfigured licensing. Switching to RemoteApp can reduce the number of CALs needed by up to 50%, since only the application is published, not the entire desktop.

# Install RD Licensing role
Add-WindowsFeature RDS-Licensing, RDS-Licensing-UI

# Activate License Server and add CAL
# (via graphical RD Licensing Manager or cmdlet)
Set-RDLicenseConfiguration `
    -ConnectionBroker "rdcb01.corp.local" `
    -Mode PerUser `
    -LicenseServer "rdcb01.corp.local"

User Profile Disks vs Roaming Profiles: UPD Is 2–3 Times Faster

When working on multiple RDSH servers, the user profile must be available everywhere. Roaming Profiles load slowly (5–15 seconds) and conflict with parallel sessions. UPD is 2–3 times faster: each user gets a VHDX file on a network share that is mounted at logon (1–3 seconds).

Parameter UPD Roaming Profile
Logon speed 1–3 seconds 5–15 seconds
Conflicts with parallel sessions None Frequent
Storage VHDX file Folder on server
Default size 10 GB (configurable) Unlimited (risk of overflow)
# Configure User Profile Disks for a collection
Set-RDSessionCollectionConfiguration `
    -CollectionName "Full Desktop" `
    -ConnectionBroker "rdcb01.corp.local" `
    -EnableUserProfileDisk $true `
    -DiskPath "\\fileserver\UPDs" `
    -MaxUserProfileDiskSizeGB 10

UPD files are stored as UVHD-<SID>.vhdx. Disk size is critical: 10 GB default, for users with large documents you need 20–30 GB.

RemoteApp — Publishing Individual Applications

RemoteApp allows an application to run on the RDS server but appear in a window on the local desktop. The user doesn't see the server, only the application. This reduces confusion and licensing requirements — RemoteApp is 2 times more efficient in CAL usage than full desktop.

# Add an application to a RemoteApp collection
New-RDRemoteApp `
    -Alias "1cv83" `
    -DisplayName "1C Enterprise 8.3" `
    -FilePath "C:\Program Files (x86)\1cv83\bin\1cv8.exe" `
    -CollectionName "RemoteApps" `
    -ConnectionBroker "rdcb01.corp.local" `
    -ShowInWebAccess $true

# Configure launch parameters (pass arguments)
Set-RDRemoteApp -Alias "1cv83" `
    -CollectionName "RemoteApps" `
    -ConnectionBroker "rdcb01.corp.local" `
    -CommandLineSetting Allow

GPO for RDS: 5 Policies That Save Your Server

GPO for RDS servers should be separate and not applied to Domain Controllers. Key policies:

  • Set idle session timeout to 15 minutes (Computer\Administrative Templates\Windows Components\Remote Desktop Services\RD Session Host\Session Time Limits) — prevents clogging with hung sessions, saving up to 30% memory.
  • Limit personalization, wallpaper, screensaver (User\Administrative Templates\Desktop) — reduces CPU load.
  • Restrict logon via Allow log on through Remote Desktop Services — only specific AD groups.
  • Limit concurrent sessions per user to 1.
  • Disable drive redirection for security.

How to Ensure RDS Farm High Availability?

For high availability:

  • Place RD Connection Broker in a cluster (Windows Failover Cluster) for uninterrupted operation — a load-balanced farm is 1.5 times more reliable than a single server.
  • Use multiple RD Session Host servers in a collection with Round Robin load balancing.
  • For licensing, install RD Licensing on a separate server and activate all CALs in advance.
  • Set up RDSH performance monitoring using Performance Monitor or Zabbix to prevent overloads and set alerts.

What's Included in RDS Setup Work?

We provide a full cycle of services with over 50 RDS projects completed and 5+ years of market experience:

  • Audit of current infrastructure and load requirements (1–2 days)
  • Architecture design: single server or load-balanced farm
  • Installation and configuration of all RDS roles (RDSH, RDCB, RDWA, RD Licensing)
  • Licensing setup (Per User/Per Device, License Server activation) — guarantee compliance
  • User Profile Disks implementation for seamless roaming
  • Application publishing via RemoteApp
  • GPO configuration for security and performance — documented
  • Migration from existing RDS farm or workstations
  • RDS performance optimization (timeout settings, caching, parameter tuning)
  • Documentation of scheme and administrator instructions
  • Post-project support (one week included)

Get an audit of your infrastructure to assess current state and required resources. Our team has experience deploying over 50 RDS projects. We guarantee stable operation and provide certificates of completion.

Timelines

Scenario Timeline
Single RDSH, up to 20 users 2–3 days
Farm (RDSH + RDCB + RDWA), up to 100 users 4–7 days
Migration from existing RDS farm 5–10 days
Audit and architecture design 1–2 days
RDS performance optimization 3–5 days

Cost is calculated individually after audit. Contact us — we will assess your infrastructure and offer the optimal solution. Detailed RDS role specification can be found in official Microsoft documentation (https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/welcome-to-rds). Get a consultation on RDS licensing and CAL savings.