Fin de la période de grâce RDS (120 jours) : accès d’urgence, conformité des CAL et alternatives cloud

Votre hôte RD Session Host refuse toute nouvelle connexion après 120 jours ? Voici une procédure claire pour rétablir l’accès en urgence, remettre votre environnement en conformité (CAL RDS) et, si nécessaire, basculer vers des alternatives cloud.

Sommaire

Vue d’ensemble du problème

Sur Windows Server, le rôle RD Session Host (RDS) dispose d’une période de grâce de 120 jours. À son expiration, le serveur n’accepte plus les nouvelles sessions RDP « utilisateur », même si le service Bureau à distance est démarré. Le but de cette période est de vous laisser le temps d’installer un Serveur de licences RDS et d’y déposer des CAL RDS (Client Access Licenses) en mode Par utilisateur ou Par périphérique.

Symptômes typiques

  • L’utilisateur reçoit un message indiquant que l’ordinateur distant ne peut pas accepter la connexion ou qu’aucun serveur de licences n’est disponible.
  • Les deux sessions d’administration « /admin » fonctionnent encore, mais les sessions utilisateur échouent.
  • Dans l’Observateur d’événements (journaux TerminalServices*), des avertissements signalent l’absence de mode de licence ou de serveur de licences.

Pourquoi cela arrive

La période de grâce démarre lorsque le rôle RD Session Host est installé. Sans configuration de licence RDS valide, le serveur bride les connexions au terme des 120 jours. Les deux connexions d’administration restent disponibles si le rôle RD Session Host n’est pas installé ; dès que ce rôle est présent, toutes les connexions RDP utilisateur exigent des CAL.

Accès d’urgence (légal) pour intervenir

Si vous avez perdu l’accès « utilisateur », il existe deux portes d’entrée, sans utiliser de CAL, pour dépanner et remettre le serveur en conformité :

  1. Session console / administrative depuis un poste d’admin : mstsc.exe /admin Cette session n’« consomme » pas de CAL RDS. Elle est réservée à l’administration.
  2. Ouverture de session locale sur la machine (accès physique, iDRAC/ILO/Hyper‑V Console, etc.).

Astuce : si deux sessions d’admin sont déjà occupées, libérez-les :

quser
logoff <ID-de-session>

Panorama des options

ApprochePrincipeAvantagesInconvénients / Risques
Acheter des CAL RDS (User ou Device)Activer le serveur de licences, installer les CAL, configurer le mode.Conforme aux contrats Microsoft ; retour à la normale rapide.Coût immédiat.
Licences en volumeAchat groupé (Open Value, CSP, etc.) pour réduire le prix unitaire.Économies d’échelle ; administration centralisée.Engagement sur des quantités / durée.
Solutions cloud (Azure Virtual Desktop, Windows 365)Déporter l’exécution des sessions/applications sur un service managé.Facturation à l’usage, élasticité, moins d’infrastructure à maintenir.Migration à planifier, dépendance réseau/Internet.
Désinstaller RD Session HostRevenir au mode « Administration à distance » (2 sessions).Récupération immédiate des deux sessions d’admin sans CAL.Perte des fonctionnalités RDS (ses. multiples, RemoteApp, etc.).

Chemin rapide recommandé (conforme)

Dans la majorité des cas, il est plus simple et sûr d’activer un serveur de licences et d’installer des CAL. Voici une procédure compacte, avec alternatives GUI/PowerShell.

1) Installer/activer le serveur de licences RDS

  1. Sur un serveur (idéalement deux pour la haute dispo), installez la fonctionnalité Remote Desktop Licensing : Install-WindowsFeature RDS-Licensing -IncludeManagementTools
  2. Ouvrez « Gestionnaire de licences Bureau à distance » et activez le serveur (méthode automatique/téléphone selon vos contraintes).
  3. Installez votre pack de CAL (Per User ou Per Device) sur ce serveur de licences.

2) Déclarer le mode et le serveur de licences sur le RD Session Host

Option A – Stratégie locale/GPO

  1. Ouvrez l’Éditeur de stratégie de groupe (ou un GPO domaine) et définissez :
  • Ordinateur → Modèles d’administration → Composants Windows → Services Bureau à distance → Hôte de session Bureau à distance → Licences
  • Définir le mode de licences des Services Bureau à distance : Par utilisateur ou Par périphérique.
  • Utiliser les serveurs de licences Services Bureau à distance spécifiés : renseignez le ou les noms FQDN de vos serveurs (rdlsrv1.contoso.local; rdlsrv2.contoso.local).

Option B – PowerShell (rapide, scriptable)

# 2 = PerDevice, 4 = PerUser
$LicenseMode = 4
$LicenseServers = @("rdlsrv1.contoso.local","rdlsrv2.contoso.local")

$cim = Get-WmiObject -Namespace "root\cimv2\TerminalServices" -Class "Win32_TerminalServiceSetting"
$cim.SetSpecifiedLicenseServerList(($LicenseServers -join ",")) | Out-Null
$cim.SetLicensingType($LicenseMode) | Out-Null

# Appliquer la stratégie et redémarrer le service RDP

gpupdate /target:computer /force
Restart-Service TermService -Force

3) Vérifier et tester

  • Depuis un poste client, ouvrez une session RDP « utilisateur » classique et vérifiez l’absence d’erreur.
  • Contrôlez les journaux TerminalServices‑* dans l’Observateur d’événements : pas d’alerte liée à la licence.
  • Sur le serveur de licences, confirmez que les CAL sont émises (pour le mode « Par périphérique »). En « Par utilisateur », le suivi est déclaratif : conservez une preuve de conformité.

Choisir entre CAL « Par utilisateur » et « Par périphérique »

CritèreUser CAL (Par utilisateur)Device CAL (Par périphérique)
ScénarioUn utilisateur se connecte depuis plusieurs postes (bureau, domicile, mobilité).Plusieurs personnes partagent un même poste (atelier, kiosque, call‑center).
GestionSuivi administratif (déclaratif côté licence), flexible pour la mobilité.Attribution technique tracée par le serveur de licences.
CoûtOptimal si le ratio utilisateurs/postes > 1.Optimal si le ratio utilisateurs/postes < 1.

Compatibilité des versions de CAL RDS

Une CAL RDS doit être de même version ou plus récente que la version du serveur RDS : une CAL « n+1 » couvre en général « n », mais l’inverse n’est pas vrai. Vérifiez votre parc et standardisez autant que possible.

Version du serveur RDSCAL minimales recommandéesRemarque
Windows Server 2016CAL 2016 (ou supérieures)Les CAL plus récentes restent compatibles.
Windows Server 2019CAL 2019 (ou supérieures)Évitez les mixes hétérogènes par site.
Windows Server 2022CAL 2022Choix recommandé pour une pérennité maximale.

Désinstaller le rôle RD Session Host pour récupérer 2 sessions d’admin

Si vos besoins ne dépassent pas l’administration à distance (deux connexions simultanées), retirez le rôle RD Session Host :

Uninstall-WindowsFeature RDS-RD-Server -Restart

Après redémarrage, vous retrouvez les deux connexions d’administration (sans CAL) mais vous perdez les fonctionnalités RDS (RemoteApp, sessions multiples, profils itinérants, etc.).

Alternatives cloud : quand AVD / Windows 365 a du sens

Si l’achat de CAL n’est pas immédiat ou si vous voulez réduire l’empreinte on‑premises, évaluez :

Azure Virtual Desktop (AVD)

  • Mutualisation de VMs (pooling), montée/descente en charge.
  • Facturation au compute/stockage ; nécessite Azure AD/entra ID, FSLogix pour profils, et une image maîtrisée.
  • Idéal pour des usages « en pointes » ou saisonniers.

Windows 365

  • PC Cloud dédié par utilisateur (forfait mensuel).
  • Très simple à opérer, coût prévisible, montée en version automatique.
  • Pertinent si vous valorisez la simplicité plus que l’optimisation fine des coûts.
CritèreRDS (on‑prem)AVDWindows 365
CapEx / OpExCAL + serveurs (CapEx)OpEx (à l’usage)OpEx (forfait)
ÉlasticitéLimitée par votre matérielÉlevéeMoyenne (par licence)
Complexité d’exploitationMaitrise localeMaitrise Azure requiseFaible

Prévenir la prochaine échéance : supervision & alertes

Plutôt que d’attendre 120 jours, mettez en place une surveillance légère :

Contrôler la configuration de licence (script)

# Vérifie mode & serveurs de licences définis, services, et connectivité RPC
$regBase = "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services"
$mode = (Get-ItemProperty -Path $regBase -Name LicensingMode -ErrorAction SilentlyContinue).LicensingMode
$lsKey = Join-Path $regBase "LicenseServers"
$servers = @()
if (Test-Path $lsKey) {
  Get-ChildItem $lsKey | ForEach-Object { $servers += $_.PSChildName }
}
$svc1 = Get-Service -Name TermService
$svc2 = Get-Service -Name TermServLicensing -ErrorAction SilentlyContinue

$results = [PSCustomObject]@{
LicensingMode = if($mode -eq 2){"PerDevice"} elseif ($mode -eq 4){"PerUser"} else {"Non défini"}
LicenseServers = if($servers){$servers -join ", "} else {"Aucun"}
TermService   = $svc1.Status
LicensingSvc  = if($svc2){$svc2.Status}else{"Non installé"}
}

$results
foreach($s in $servers){
Test-NetConnection -ComputerName $s -Port 135 -InformationLevel Quiet | `
ForEach-Object { Write-Host "RPC vers $s : " + ($(if($_){"OK"}else{"KO"})) }
}

Créer une alerte planifiée

  1. Enregistrez le script ci‑dessus (par ex. C:\Ops\Test-RdsLicensing.ps1).
  2. Planifiez‑le hebdomadairement via le Planificateur de tâches, en sortie vers un fichier : powershell.exe -ExecutionPolicy Bypass -File "C:\Ops\Test-RdsLicensing.ps1" | Tee-Object -FilePath "C:\Ops\logs\rds-check.log" -Append
  3. Ajoutez un seuil : si LicensingMode est « Non défini » ou si tous les tests RPC sont « KO », envoyez un mail/Teams ou écrivez un événement personnalisé.

Ports et pare‑feu à ne pas oublier

UsagePort(s)DirectionNotes
Connexion RDPTCP 3389Client → RD Session HostPeut être personnalisé.
RD Session Host → Serveur de licencesTCP 135 + ports éphémèresRDSH → RDLSRPC dynamique (plage Windows éphémère, par défaut 49152‑65535).
Activation du serveur de licencesHTTPS 443 (sortant)RDLS → InternetNécessaire lors de l’activation/ajout de packs de licences.

Ce qu’il ne faut pas faire

Important – conformité : vous trouverez sur Internet des « astuces » consistant à manipuler la base de registre pour réinitialiser la période de grâce de 120 jours. Cette pratique viole les conditions d’utilisation et peut exposer votre organisation à des risques contractuels et juridiques. Je ne fournis pas d’instructions pour contourner les mécanismes de licence. Utilisez les méthodes conformes décrites ci‑dessus ou, à défaut, désinstallez le rôle RD Session Host pour retrouver les deux sessions d’administration.

FAQ express

Combien de sessions d’administration sont autorisées sans CAL ? Deux connexions simultanées « d’administration ». Elles ne remplacent pas des sessions utilisateurs RDS normales.

Per User vs Per Device : quel suivi ? En « Par périphérique », l’attribution est suivie techniquement par le serveur de licences. En « Par utilisateur », c’est généralement un suivi administratif (conformité déclarative).

Puis‑je installer le serveur de licences sur le même hôte que le RDSH ? Oui pour les petites structures. En production, privilégiez deux serveurs de licences distincts pour la tolérance de panne.

Dois‑je redémarrer le serveur après la configuration de la licence ? Pas forcément. Un gpupdate et le redémarrage du service TermService suffisent dans la plupart des cas.

Checklist « mise en conformité en 60 min »

  1. Accéder via mstsc /admin et libérer une session si besoin (quser/logoff).
  2. Installer la fonctionnalité RDS-Licensing sur 1‑2 serveurs et les activer.
  3. Importer les packs de CAL achetés.
  4. Configurer sur le RDSH le mode de licence et la liste des serveurs (GPO/PowerShell).
  5. Redémarrer le service TermService et tester une session utilisateur.
  6. Documenter (inventaire CAL, captures d’écran, procédure) et planifier la supervision.

Budget & plan B réaliste

  • Si l’achat de CAL est acté : priorisez le déploiement des serveurs de licences, installez les CAL immédiatement, finalisez les bons de commande plus tard si nécessaire (selon votre processus interne).
  • Si le budget est bloqué : chiffrez une bascule temporaire vers AVD/Windows 365 pour les profils critiques, ou désinstallez RD Session Host et organisez l’exploitation via les deux sessions d’admin le temps de la décision.

Bonnes pratiques pour l’avenir

  • Standardisez la version des CAL au niveau de la plus haute version de vos serveurs.
  • Déployez deux serveurs de licences et référencez‑les via GPO sur tous vos RDSH.
  • Automatisez un contrôle hebdomadaire (script ci‑dessus) et un rapport mensuel de conformité.
  • Budgétisez les renouvellements CAL dans votre cycle financier annuel.

Conclusion

La fin de la période de grâce RDS n’est pas une fatalité. En gardant un accès d’urgence via /admin, en configurant correctement votre serveur de licences et en choisissant le bon type de CAL, vous rétablissez les connexions en quelques étapes, en toute conformité. Et si le contexte l’exige, les options cloud offrent un filet de sécurité efficace, sans compromis légal.

Sommaire