This guide walks you through installing and configuring Remote Desktop Session Host (RDSH) on a standalone Windows Server—no domain join required. Perfect for labs, sovereign setups, or lightweight deployments.
✅ Step 1: Install RDS Roles via PowerShell
Open PowerShell as Administrator and run:
Install-WindowsFeature -Name RDS-RD-Server, RDS-Licensing -IncludeManagementTools
Restart-Computer
This installs:
- Remote Desktop Session Host
- Remote Desktop Licensing
✅ Step 2: Create Licensing Registry Key
After reboot, create the missing registry path:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "Licensing Core" -Force
✅ Step 3: Set Licensing Mode to Per Device
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Licensing Core" -Name LicensingMode -Value 2
2= Per Device4= Per User (not supported in workgroup mode)
✅ Step 4: Specify License Server Name
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Licensing Core" -Name LServer -Value "WIN-8Q1KK9J6TPN" -PropertyType String -Force
Replace "WIN-8Q1KK9J6TPN" with your actual license server name.
✅ Step 5: Verify Grace Period
Use PowerShell (not WMIC) to check how many days remain:
Invoke-CimMethod -InputObject (Get-CimInstance -Namespace root/CIMV2/TerminalServices -ClassName Win32_TerminalServiceSetting) -MethodName GetGracePeriodDays
Returns:
DaysLeft= Remaining grace periodReturnValue=0means success
✅ Step 6: Manage RDSH via PowerShell
View Installed RDS Roles
Get-WindowsFeature | Where-Object {$_.Name -like "RDS*"} | Format-Table DisplayName, InstallState
View Active User Sessions
Get-RDUserSession
Disconnect a Session
Invoke-RDUserLogoff -UnifiedSessionID <SessionID> -HostServer "YourServerName"
⚠️ Notes for Workgroup Mode
- You cannot use RD Web Access or RemoteApp publishing
- You must activate RDS CALs on the license server
- You must manage RDS roles via PowerShell, not Server Manager GUI
- You cannot use per-user licensing in workgroup mode
🪶