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 tohttps://rds.corp.ru/RDWeband 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:
- Install the RDS roles using PowerShell or Server Manager.
- Configure RD Licensing: activate license server and add CALs.
- Create a session collection and add RDSH servers.
- Configure User Profile Disks for roaming profiles.
- Publish applications via RemoteApp.
- Apply GPOs for session limits and security.
- 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 10UPD 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 Brokerin 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 Hostservers in a collection with Round Robin load balancing. - For licensing, install
RD Licensingon 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.







