Remote Desktop Services (RDS) et RemoteApp permettent de publier des applications Windows depuis Windows Server 2025 vers des clients distants sans aucun déploiement local. Ce guide détaille l'installation des cinq rôles RDS, la configuration des certificats TLS, la publication RemoteApp et la gestion des licences CAL.

RDS RemoteApp sur Windows Server 2025 permet de publier des applications Windows centralisées accessibles depuis n'importe quel navigateur ou client RDP, en éliminant les déploiements locaux sur les postes de travail. La technologie repose sur cinq rôles complémentaires : RD Session Host (RDSH) pour l'exécution des applications, RD Web Access (RDWA) pour l'accès navigateur, RD Gateway (RDG) pour la sécurisation des connexions externes via HTTPS, RD Connection Broker (RDCB) pour l'équilibrage de charge et la haute disponibilité, et RD Licensing pour la gestion des licences CAL. Windows Server 2025 apporte des améliorations majeures sur cette infrastructure : support GPU virtuel amélioré, intégration Azure AD native, amélioration du protocole RDP 10.9 avec compression adaptative, et support des affichages haute résolution jusqu'à 8K. Selon Microsoft, les organisations qui centralisent leurs applications via RDS réduisent les coûts de gestion applicative de 40 à 60 % en comparaison aux déploiements poste-par-poste, grâce à la centralisation des mises à jour, des correctifs de sécurité et de la gestion des licences. Ce guide pratique vous accompagne de l'installation des rôles à la publication sécurisée d'applications RemoteApp, avec des commandes PowerShell complètes et les meilleures pratiques de sécurisation TLS.

À retenir

  • 5 rôles RDS distincts : RDSH (exécution apps), RDWA (accès web navigateur), RDG (sécurité connexions externes), RDCB (load balancing), RD Licensing — chaque rôle peut résider sur un serveur dédié en production.
  • Licences RDS CAL obligatoires : chaque utilisateur ou appareil accédant à RDSH requiert une CAL RDS spécifique — sans CAL valide, les connexions échouent après 120 jours de grace period.
  • RemoteApp vs bureau complet : RemoteApp publie une application isolée intégrée dans la barre des tâches locale, tandis que le bureau distant complet expose tout l'environnement Windows Server.
  • RD Gateway sur port 443 : sans RDG, le port 3389 doit être exposé sur Internet ; avec RDG, seul HTTPS port 443 suffit, réduisant drastiquement la surface d'attaque exposée.
  • Certificats TLS requis sur RDWA et RDG : les certificats auto-signés bloquent les connexions depuis Chrome et Edge modernes — utiliser Let's Encrypt ou une PKI d'entreprise validée.

Qu'est-ce que Remote Desktop Services sur Windows Server 2025 ?

Remote Desktop Services (RDS) est la solution Microsoft de virtualisation d'applications et de bureaux distants intégrée nativement dans Windows Server 2025. RDS repose sur le protocole RDP (Remote Desktop Protocol) dans sa version 10.9, qui introduit une compression adaptative basée sur le contenu visuel affiché, réduisant la bande passante consommée de 30 à 50 % par rapport à RDP 8 sur les connexions à faible débit. La technologie permet deux modes de publication : le bureau distant complet (accès à un environnement Windows Server entier) et RemoteApp (publication d'applications individuelles qui s'intègrent dans le bureau local de l'utilisateur comme si elles étaient installées localement).

Windows Server 2025 introduit plusieurs améliorations spécifiques à RDS : support des GPU NVIDIA et AMD via vGPU pour les applications graphiques intensives (CAO, outils de BI), intégration Azure AD pour l'authentification sans Active Directory on-premise, amélioration du codec H.264/AVC 444 pour les sessions graphiques haute qualité, et support des écrans jusqu'à 8K en résolution. L'architecture RDS est conçue pour la scalabilité : une ferme RDS peut regrouper plusieurs serveurs RDSH pour répartir la charge et assurer la haute disponibilité via le Connection Broker.

Prérequis matériels et logiciels pour déployer RDS

Avant d'installer les rôles RDS, il convient de valider l'infrastructure. Pour un déploiement de production desservant 50 à 100 utilisateurs simultanés, Microsoft recommande au minimum 8 vCPU, 32 Go de RAM et 100 Go de stockage SSD pour le RD Session Host. Le RD Connection Broker peut partager un serveur avec RD Licensing pour les petits déploiements, mais doit rester distinct du RDSH en production.

Les prérequis logiciels incluent : Windows Server 2025 Standard ou Datacenter (les licences Core ne permettent pas l'installation de l'interface graphique requise pour le gestionnaire RDS), un domaine Active Directory fonctionnel (recommandé, bien que RDS 2025 supporte désormais Azure AD en mode natif), un certificat TLS valide pour les endpoints RDWA et RDG (Let's Encrypt accepté), et des licences RDS CAL (User CAL ou Device CAL selon le modèle de facturation).

Rôle RDSFonction principaleRAM recommandéeServeur dédié ?
RD Session HostExécution des applications et bureaux≥ 16 Go (prod)Oui, toujours
RD Connection BrokerÉquilibrage de charge, reconnexion sessions4 Go minimumOui en prod
RD Web AccessPortail web IIS pour accès navigateur4 Go minimumPeut partager avec RDCB
RD GatewayTunnel HTTPS pour accès externe sécurisé4 Go minimumOui, en DMZ idéalement
RD LicensingGestion et attribution des CAL RDS2 Go minimumPeut partager avec RDCB

Comment installer les rôles RDS avec PowerShell ?

L'installation des rôles RDS sur Windows Server 2025 s'effectue via PowerShell avec le module ServerManager. La commande suivante installe tous les rôles nécessaires sur un déploiement mono-serveur (lab ou petite structure) :

# Installation complète des rôles RDS sur un seul serveur (déploiement lab)
# Adapter pour production : distribuer les rôles sur plusieurs serveurs

Install-WindowsFeature -Name RDS-RD-Server, RDS-Web-Access, RDS-Gateway, `
    RDS-Connection-Broker, RDS-Licensing, RDS-Licensing-UI `
    -IncludeManagementTools -Restart

# Vérification post-installation
Get-WindowsFeature | Where-Object {$_.Name -like "RDS-*" -and $_.InstallState -eq "Installed"} |
    Select-Object Name, DisplayName, InstallState

Pour un déploiement distribué en production, installer chaque rôle sur son serveur dédié. Le RD Session Host doit impérativement rester sur un serveur distinct pour des raisons de performances et de sécurité (isolation des sessions utilisateurs).

# Sur le serveur RDSH uniquement
Install-WindowsFeature -Name RDS-RD-Server -IncludeManagementTools

# Sur le serveur RDCB (Connection Broker + Licensing)
Install-WindowsFeature -Name RDS-Connection-Broker, RDS-Licensing, `
    RDS-Licensing-UI, RDS-Web-Access -IncludeManagementTools

# Sur le serveur RDG (Gateway — idéalement en DMZ)
Install-WindowsFeature -Name RDS-Gateway -IncludeManagementTools -Restart

Configuration du déploiement RDS via le Gestionnaire de serveur

Après installation des rôles, la configuration du déploiement RDS s'effectue depuis le Gestionnaire de serveur. Dans le menu Gérer, cliquez sur Ajouter des rôles et fonctionnalités, puis sélectionnez Installation des services Bureau à distance. Cette interface permet de définir la topologie : Standard Deployment (GUI) ou Quick Start (tout-en-un sur un serveur).

En PowerShell, la création d'un déploiement RDS se réalise avec le module RemoteDesktop :

# Import du module RemoteDesktop
Import-Module RemoteDesktop

# Création du déploiement RDS (adapter les noms de serveurs)
$BrokerServer   = "RDCB01.domaine.local"
$WebServer      = "RDCB01.domaine.local"  # Même serveur que RDCB en petite config
$SessionServer  = "RDSH01.domaine.local"

New-RDSessionDeployment `
    -ConnectionBroker $BrokerServer `
    -WebAccessServer  $WebServer `
    -SessionHost      $SessionServer

# Ajout du serveur Gateway au déploiement
$GatewayServer = "RDGW01.domaine.local"
Add-RDServer -Server $GatewayServer -Role RDS-GATEWAY -ConnectionBroker $BrokerServer

# Ajout du serveur Licensing
Add-RDServer -Server $BrokerServer -Role RDS-LICENSING -ConnectionBroker $BrokerServer

# Configuration du mode de licence (PerUser ou PerDevice)
Set-RDLicenseConfiguration -LicenseServer $BrokerServer `
    -Mode PerUser -ConnectionBroker $BrokerServer -Force

Comment configurer RD Gateway pour sécuriser les connexions externes ?

RD Gateway est le composant critique pour exposer RDS sur Internet de manière sécurisée. Il établit un tunnel HTTPS (port 443) entre le client externe et le serveur RDS interne, éliminant le besoin d'exposer le port 3389 sur Internet. RDG intègre également des politiques de connexion (CAP — Connection Authorization Policies) et de ressources (RAP — Resource Authorization Policies) pour contrôler granulièrement qui peut accéder à quoi.

# Configuration RD Gateway via PowerShell
# Prérequis : certificat TLS installé dans le magasin de certificats local

# Récupérer l'empreinte du certificat TLS
$Cert = Get-ChildItem -Path Cert:\LocalMachine\My |
    Where-Object {$_.Subject -like "*rdgateway.domaine.com*"} |
    Select-Object -First 1

# Configurer le certificat RD Gateway
Set-RDCertificate -Role RDGateway `
    -ImportPath $Cert.Thumbprint `
    -ConnectionBroker $BrokerServer -Force

# Créer une politique d'autorisation de connexion (CAP)
# Permet aux membres du groupe "RDS-Users" de se connecter
Import-Module RemoteDesktopServices
New-Item -Path 'RDS:\GatewayServer\CAP' -Name 'RDS-Users-CAP' `
    -UserGroups "DOMAINE\RDS-Users" -AuthMethod 1

# Créer une politique d'autorisation de ressources (RAP)
# Autorise l'accès aux serveurs RDSH uniquement
New-Item -Path 'RDS:\GatewayServer\RAP' -Name 'RDS-RDSH-RAP' `
    -UserGroups "DOMAINE\RDS-Users" `
    -ComputerGroupType 0 `
    -ComputerGroup "DOMAINE\RDSH-Servers"

La configuration du certificat TLS pour RDG est essentielle : sans certificat valide signé par une CA reconnue, les clients modernes (Chrome 120+, Edge 120+) affichent une erreur bloquante. Let's Encrypt peut être utilisé via le module Posh-ACME pour automatiser le renouvellement.

Installation et configuration des certificats TLS pour RDS

Windows Server 2025 simplifie la gestion des certificats TLS pour RDS grâce au Gestionnaire de serveur. Quatre composants nécessitent un certificat : RD Connection Broker (publication), RD Connection Broker (SSO), RD Web Access et RD Gateway. Il est possible d'utiliser le même certificat wildcard pour tous les composants si le FQDN le permet.

# Application d'un certificat à tous les rôles RDS
# Remplacer par l'empreinte (thumbprint) de votre certificat
$Thumbprint = "A1B2C3D4E5F6..."
$BrokerFQDN = "rdcb01.domaine.local"

# Appliquer le certificat aux 4 rôles RDS
$Roles = @("RDRedirector", "RDPublishing", "RDWebAccess", "RDGateway")
foreach ($Role in $Roles) {
    Set-RDCertificate -Role $Role -Thumbprint $Thumbprint `
        -ConnectionBroker $BrokerFQDN -Force
    Write-Host "Certificat appliqué au rôle : $Role"
}

# Vérification
Get-RDCertificate -ConnectionBroker $BrokerFQDN |
    Select-Object Role, Subject, ExpiresOn, IssuedBy

En mission de déploiement RDS pour un cabinet d'expertise comptable (80 utilisateurs, 3 sites), nous avons constaté que 60 % du temps de déploiement était consacré à la résolution des problèmes de certificats et de DNS. La cause principale : les serveurs RDSH n'étaient pas résolvables par leur FQDN depuis les postes clients. La règle d'or est de valider la résolution DNS bidirectionnelle avant toute configuration RDS, et d'utiliser des certificats Let's Encrypt automatisés dès le départ plutôt que de gérer manuellement les certificats auto-signés.

— Retour de mission déploiement RDS, mars 2026

Publication d'applications RemoteApp

RemoteApp est le mode de publication phare de RDS : l'application s'exécute sur le serveur RDSH mais s'affiche dans une fenêtre sur le bureau local de l'utilisateur, avec intégration dans la barre des tâches et le menu Démarrer. L'utilisateur ne voit pas le bureau Windows Server — seulement la fenêtre de l'application.

# Publication d'une application RemoteApp (exemple : Microsoft Word)
New-RDRemoteApp `
    -CollectionName "Applications-Bureau" `
    -DisplayName "Microsoft Word 2025" `
    -FilePath "C:\Program Files\Microsoft Office
oot\Office16\WINWORD.EXE" `
    -Alias "Word2025" `
    -ShowInWebAccess 1 `
    -ConnectionBroker $BrokerFQDN

# Publication d'une application avec arguments (ex: ouvrir directement un fichier)
New-RDRemoteApp `
    -CollectionName "Applications-Bureau" `
    -DisplayName "ERP Interne" `
    -FilePath "C:\ERP\erp_client.exe" `
    -Alias "ERP" `
    -CommandLineSetting Require `
    -RequiredCommandLine "/server=erp-prod" `
    -ConnectionBroker $BrokerFQDN

# Lister les applications RemoteApp publiées
Get-RDRemoteApp -CollectionName "Applications-Bureau" -ConnectionBroker $BrokerFQDN |
    Select-Object DisplayName, FilePath, Alias, ShowInWebAccess

Les applications RemoteApp publiées apparaissent automatiquement dans le portail RD Web Access à l'adresse https://rdwa.domaine.com/RDWeb. L'utilisateur clique sur l'application, télécharge un fichier .rdp configuré automatiquement, et l'application s'ouvre directement. Cette expérience est disponible également depuis les applications RD Web Feed (abonnement RDP) sur Windows 10/11 et macOS.

Comment configurer RD Web Access pour l'accès navigateur ?

RD Web Access expose un portail web IIS à l'adresse https://<serveur>/RDWeb. Ce portail permet aux utilisateurs d'accéder aux applications RemoteApp et aux bureaux distants depuis un navigateur, sans client RDP préinstallé (via HTML5 si le client HTML5 est activé). Windows Server 2025 intègre le client HTML5 RDP de Microsoft, permettant une connexion complète depuis Chrome ou Edge sans plugin.

# Configuration du serveur RD Web Access
# Récupérer la collection de sessions à associer au Web Access
$CollectionName = "Applications-Bureau"

# Configurer la collection pour afficher les apps dans Web Access
Set-RDSessionCollectionConfiguration `
    -CollectionName $CollectionName `
    -ConnectionBroker $BrokerFQDN `
    -CustomRdpProperty "use redirection server name:i:1"

# Activer le client HTML5 (Windows Server 2025)
# Via IIS Manager : activer le module HTML5Client dans le site RDWeb

# Personnaliser la page d'accueil RD Web Access
$RDWebPath = "C:\Windows\Web\RDWeb\Pages"
# Copier les logos et personnaliser le fichier Default.aspx selon la charte graphique

Gestion des licences RDS CAL sur Windows Server 2025

Les licences RDS CAL (Client Access License) sont obligatoires pour chaque utilisateur ou appareil qui accède au RD Session Host. Il existe deux types : User CAL (licence par utilisateur, recommandée pour le télétravail) et Device CAL (licence par appareil, recommandée pour les postes partagés en équipes tournantes). Sans CAL valide, Windows Server 2025 octroie une grace period de 120 jours après laquelle les connexions RDSH sont refusées.

# Activation du serveur de licences RDS
# Étape 1 : Activer via le Gestionnaire de licences RD (interface graphique)
# Étape 2 : Vérifier l'état des licences en PowerShell

# Vérifier la configuration des licences
Get-RDLicenseConfiguration -ConnectionBroker $BrokerFQDN

# Vérifier le nombre de CAL disponibles et utilisées
$LicServer = "RDCB01.domaine.local"
$wmi = Get-WmiObject -Class Win32_TSLicenseKeyPack -ComputerName $LicServer |
    Where-Object {$_.ProductName -like "*Remote Desktop*"}
$wmi | Select-Object ProductName, TotalLicenses, IssuedLicenses, AvailableLicenses

# Rapport des CAL émises (audit)
Get-WmiObject -Class Win32_TSIssuedLicense -ComputerName $LicServer |
    Select-Object sIssuedToUser, sIssuedToComputer, dtIssueDate, dtExpiryDate |
    Sort-Object dtIssueDate -Descending | Select-Object -First 20

La documentation officielle Microsoft sur la gestion des licences RDS CAL détaille les procédures d'activation en ligne et hors ligne, ainsi que les cas particuliers (Disaster Recovery, Spécialisation logicielle).

Sécurisation de l'infrastructure RDS : bonnes pratiques 2026

La surface d'attaque d'un déploiement RDS est importante : les serveurs RDSH hébergent des applications critiques accessibles depuis Internet. Les recommandations de sécurité ANSSI pour les accès distants sécurisés s'appliquent pleinement à RDS. Voici les mesures prioritaires à implémenter.

# 1. Forcer Network Level Authentication (NLA) — empêche les connexions sans authentification préalable
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
    -Name "UserAuthentication" -Value 1

# 2. Configurer le timeout de session inactive (30 minutes)
Set-GPRegistryValue -Name "RDS-Security-Policy" `
    -Key "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" `
    -ValueName "MaxDisconnectionTime" -Type DWord -Value 1800000

# 3. Limiter le nombre de sessions simultanées par utilisateur
Set-RDSessionCollectionConfiguration `
    -CollectionName "Applications-Bureau" `
    -ConnectionBroker $BrokerFQDN `
    -TemporaryFoldersDeletedOnExit $true `
    -MaxRedirectedMonitors 4

# 4. Activer l'audit des connexions RDS
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Logoff" /success:enable

# 5. Restreindre les protocoles SSL/TLS — forcer TLS 1.3 uniquement
# Désactiver TLS 1.0 et TLS 1.1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" `
    -Name "Enabled" -Value 0
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" `
    -Name "Enabled" -Value 0

Pour aller plus loin sur la sécurisation des accès distants, consultez le guide ANSSI sur le nomadisme numérique et le guide de sécurisation Active Directory qui s'applique à l'infrastructure sous-jacente RDS. La sécurité des comptes de service utilisés par RDS est également critique — voir l'article sur les 10 principales attaques Active Directory pour comprendre les vecteurs d'attaque les plus courants sur les infrastructures Windows.

Dépannage des problèmes courants RDS

Les problèmes les plus fréquents lors du déploiement RDS concernent la résolution de noms, les certificats et les licences. Le journal des événements Windows centralise les erreurs RDS dans plusieurs sources : Microsoft-Windows-TerminalServices-*, Microsoft-Windows-RemoteDesktopServices-* et Security pour les échecs d'authentification.

# Diagnostic rapide de l'état RDS
# Vérifier les services RDS en cours d'exécution
Get-Service -Name "TermService", "UmRdpService", "SessionEnv", "RpcSs" |
    Select-Object Name, Status, StartType

# Consulter les erreurs récentes dans les journaux RDS
Get-WinEvent -LogName "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" `
    -MaxEvents 50 | Where-Object {$_.LevelDisplayName -eq "Error"} |
    Select-Object TimeCreated, Id, Message

# Tester la connectivité RDP depuis PowerShell
Test-NetConnection -ComputerName "RDSH01.domaine.local" -Port 3389

# Vérifier les CAL disponibles depuis le RDSH
$WMI = Get-WmiObject -Namespace root/CIMV2 -Class Win32_TSLicenseServer
$WMI | Select-Object ServerName, IsLicenseServer, ActivationStatus

Pour les problèmes de certificats, l'erreur "The certificate is not from a trusted certifying authority" indique que le certificat du RD Gateway n'est pas dans le magasin de certificats Trusted Root des clients. La solution : soit utiliser un certificat émis par une CA publique (Let's Encrypt, DigiCert), soit déployer le certificat de la CA interne via GPO sur tous les postes clients.

La documentation Microsoft sur le déploiement d'infrastructure RDS fournit les arbres de décision pour chaque topologie. Pour les aspects forensics post-incident sur des serveurs Windows Server 2025, consultez l'article Windows Server 2025 : Guide Forensic & Incident Response.

Questions fréquentes

Combien d'utilisateurs simultanés peut supporter un serveur RDSH sous Windows Server 2025 ?

Le nombre d'utilisateurs simultanés dépend directement des ressources matérielles et de la charge des applications. En règle générale, Microsoft recommande 1 vCPU et 200-500 Mo de RAM par utilisateur pour des applications bureautiques légères (Office, navigateur). Un serveur avec 16 vCPU et 64 Go de RAM peut donc théoriquement héberger 30 à 50 utilisateurs simultanés pour du travail bureautique standard. Des tests de charge avec l'outil LoginVSI sont recommandés avant tout dimensionnement de production.

Peut-on utiliser RDS sans Active Directory avec Windows Server 2025 ?

Oui, Windows Server 2025 permet de déployer RDS avec Azure AD en remplacement d'un Active Directory on-premise. Cette configuration nécessite l'activation du module Azure AD Join pour Windows Server et la configuration du RD Gateway avec l'authentification Azure AD. Pour les très petites structures, un groupe de travail Windows suffit pour un déploiement mono-serveur, mais sans les fonctionnalités avancées (SSO, stratégies de groupe, redirection de profils).

Quelle est la différence entre RemoteApp et Windows 365 Cloud PC ?

RemoteApp publie des applications individuelles depuis un serveur Windows Server 2025 on-premise ou Azure ; l'organisation gère entièrement l'infrastructure. Windows 365 Cloud PC est un service Microsoft 365 entièrement managé qui fournit un PC virtuel complet dans le cloud Azure, sans gestion d'infrastructure côté client. RemoteApp est plus économique pour les organisations qui hébergent déjà des serveurs Windows Server ; Windows 365 est plus simple mais plus coûteux (à partir de 28 €/mois par utilisateur).

Comment migrer de Windows Server 2019 RDS vers Windows Server 2025 ?

La migration RDS suit un processus en plusieurs étapes : déployer un nouveau serveur RDSH 2025 en parallèle, l'ajouter à la ferme existante via le Connection Broker, migrer les applications et profils utilisateurs, puis retirer progressivement les anciens serveurs. L'outil USMT (User State Migration Tool) facilite la migration des profils. Microsoft déconseille la mise à niveau en place (in-place upgrade) des serveurs RDSH en production ; une migration parallèle est toujours préférable pour minimiser les risques.

RDS est-il compatible avec le mode de bureau distant de Windows 365 App ?

L'application Windows 365 (anciennement Remote Desktop) est le client universel Microsoft qui se connecte aussi bien aux fermes RDS classiques qu'aux Cloud PC Windows 365 et aux VM Azure Virtual Desktop. Elle est disponible sur Windows, macOS, iOS, Android et supporte les connexions RemoteApp. Pour les organisations hybrides, c'est le client recommandé car il centralise la gestion de toutes les connexions distantes dans une seule interface.