Symptôme clair : après 120 jours, votre hôte Hyper‑V sous Windows Server 2019 qui fait aussi office de RDSH refuse toute nouvelle session RDP avec « No Remote Desktop License Server available ». Voici comment rétablir l’accès proprement et durablement.
Problème
Un hôte Hyper‑V sous Windows Server 2019 Standard sert également de Remote Desktop Session Host (RDSH). À l’expiration de la période de grâce RDS (120 jours), toute nouvelle connexion RDP vers l’hôte échoue avec :
“No Remote Desktop License Server available.”
Les deux machines virtuelles hébergées, elles, restent accessibles en RDP.
Analyse (ce qu’il faut comprendre)
- Mode Administration à distance vs. RDSH — Sans le rôle Remote Desktop Session Host, le serveur reste en « Administration à distance » : deux connexions RDP administratives sont autorisées gratuitement pour gérer la machine.
- Dès que le rôle RDSH est installé, le serveur devient un hôte de sessions multi‑utilisateurs : il nécessite un serveur de licences RDS et des CAL (Client Access Licenses) adaptées (Per User ou Per Device).
- La période de grâce de 120 jours vous offre un délai pour activer un serveur de licences et y installer vos CAL. À son expiration, les sessions RDP non‑administratives sont refusées.
Solutions pas‑à‑pas (vue d’ensemble)
Étape | Action | Détails |
---|---|---|
1 | Mettre en place le serveur de licences RDS | Dans Server Manager : Add Roles and Features → Remote Desktop Services → cochez Remote Desktop Licensing. Activez le serveur via Server Manager › Tools › Remote Desktop Services › Remote Desktop Licensing Manager (licmgr.exe ), puis installez vos CAL Per User ou Per Device. |
2 | Pointer l’hôte Hyper‑V (RDSH) vers ce serveur de licences | Exécutez gpedit.msc (ou appliquez une GPO au niveau domaine). Allez à Computer Configuration › Administrative Templates › Windows Components › Remote Desktop Services › Remote Desktop Session Host › Licensing. Activez Use the specified Remote Desktop license servers et indiquez le FQDN ou l’IP du serveur de licences. Activez Set the Remote Desktop licensing mode et choisissez Per User ou Per Device (selon vos CAL). Appliquez avec gpupdate /force , puis redémarrez le service Remote Desktop Services (TermService ) ou le serveur. |
3 | Besoin seulement des 2 connexions administratives ? | Désinstallez le rôle Remote Desktop Session Host : l’hôte repasse en Administration à distance (2 canaux gratuits). En urgence, connectez‑vous en mstsc /admin (anciennement /console ) pour un canal exempt de licence. |
4 | Diagnostiquer | L’outil RD Licensing Diagnoser (lsdiag.msc ) repère les erreurs usuelles (mode non configuré, serveur introuvable, CAL manquantes). La clé de registre HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod contient l’expiration de la période de grâce (ne pas supprimer). |
Procédures détaillées
Installer et activer le serveur de licences
- Ouvrez Server Manager → Add Roles and Features → Type Role‑based or feature‑based installation → Sélectionnez le serveur → Server Roles → Remote Desktop Services → cochez Remote Desktop Licensing.
- Après redémarrage si demandé, ouvrez Tools › Remote Desktop Services › Remote Desktop Licensing Manager (
licmgr.exe
). - Dans RD Licensing Manager : clic‑droit sur le serveur → Activate Server et suivez l’assistant (mode automatique recommandé).
- Installez vos CAL : clic‑droit → Install Licenses, choisissez le type (RDS Per User ou Per Device), puis le programme d’acquisition et la clé.
Configurer l’hôte RDSH (Hyper‑V) pour utiliser ce serveur
Deux approches sont possibles : GPO (recommandée) ou registre/WMI (serveur autonome).
Via stratégie de groupe (GPO)
- Sur le serveur (ou via GPMC) : Computer Configuration › Administrative Templates › Windows Components › Remote Desktop Services › Remote Desktop Session Host › Licensing.
- Activez Use the specified Remote Desktop license servers et indiquez le ou les serveurs (séparés par des virgules).
- Activez Set the Remote Desktop licensing mode et sélectionnez le mode conforme à vos CAL (Per User ou Per Device).
gpupdate /force
puis redémarrezTermService
ou le serveur.
Via registre / WMI (serveur hors domaine)
À utiliser si vous n’avez pas de GPO (workgroup) ; exécuter en invite élevée.
# Définir le serveur de licences
$ts = Get-WmiObject -Class "Win32_TerminalServiceSetting" -Namespace "root\CIMV2\TerminalServices"
$null = $ts.SetSpecifiedLicenseServerList("MONSERVEUR-LIC")
# Définir le mode de licences : 2 = Per Device, 4 = Per User
$null = $ts.SetLicensingMode(4) # 4 pour Per User, 2 pour Per Device
# (Alternative registre)
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\LicenseServers" -Force | Out-Null
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\LicenseServers\MONSERVEUR-LIC" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Licensing Core" -Name "LicensingMode" -Value 4 -Type DWord
# Appliquer
Restart-Service -Name TermService -Force </code></pre>
<h3>Valider la configuration</h3>
<ul>
<li>Lancez <strong>RD Licensing Diagnoser</strong> (<code>lsdiag.msc</code>) : assurez‑vous que le mode est configuré et que le serveur de licences répond.</li>
<li>Vérifiez que des CAL valides sont <em>installées</em> et <em>disponibles</em> dans <em>RD Licensing Manager</em> (<code>licmgr.exe</code>).</li>
<li>Depuis l’hôte RDSH, testez la connectivité :
<pre><code class="language-powershell">Test-NetConnection MONSERVEUR-LIC -Port 135 # RPC Endpoint Mapper
Test-NetConnection MONSERVEUR-RDSH -Port 3389 # RDP depuis un poste client
Vérifications système et journaux d’événements
- Services : Remote Desktop Licensing et Remote Desktop Services (TermService) doivent être à l’état Running.
Get-Service -Name TermServLicensing, TermService | Select-Object Name, Status, StartType
- DNS : le FQDN du serveur de licences doit se résoudre (A/AAAA et PTR si possible).
- Pare‑feu : autoriser
TCP 3389
(RDP),TCP 135
(RPC) et la plage RPC dynamique si filtrage strict (par défaut :49152‑65535
). - Journaux (Event Viewer) :
- Applications and Services Logs › Microsoft › Windows › TerminalServices‑RemoteConnectionManager
- … › TerminalServices‑RDPClient/Operational
- … › TerminalServices‑Licensing
Comprendre les CAL RDS et éviter les pièges
Aspect | Per User | Per Device |
---|---|---|
Application | Basée sur l’utilisateur (comptabilité déclarative) | Basée sur l’équipement (comptabilisée par le serveur de licences) |
Contrôle technique | Non strictement appliqué par l’hôte RDSH | Contrôlé : une licence est délivrée à chaque appareil |
Scénarios | Utilisateurs nominatifs, multiples postes, VDI | Postes partagés, kiosques, salles de formation |
Changement de mode | Toujours aligner le mode configuré sur les CAL réellement acquises |
- Rétro‑compatibilité : des CAL Server 2019 couvrent les hôtes 2016/2012 R2 ; l’inverse n’est pas valable.
- Serveur de licences unique : un seul serveur peut fournir des CAL à plusieurs hôtes RDSH ; il suffit de le référencer partout.
- Période de grâce : 120 jours à compter de la première session après installation du rôle RDSH.
- Ne pas “tricher” : supprimer la clé
GracePeriod
est une violation de licence et peut endommager la pile RDS.
Cas particulier : hôte Hyper‑V qui fait aussi RDSH
Techniquement possible, ce cumul de rôles n’est pas recommandé : il augmente la surface d’attaque, complique les mises à jour et met en concurrence les ressources CPU/RAM/IO entre RDS et les VM. Deux stratégies robustes :
- Séparer les rôles : gardez l’hôte Hyper‑V « propre » (éventuellement Server Core) et exécutez le rôle RDSH dans une VM dédiée. Vous conserverez l’accès d’administration à l’hôte (canaux /admin) même en cas de défaut RDS côté VM.
- Si vous restez en cumul : mettez en place un serveur de licences RDS stable (idéalement une autre VM) et référencez‑le clairement par GPO. Surveillez les ressources et fixez des limites (Quota CPU, RAM réservée aux VM critiques).
Rétablir l’accès en urgence (break‑glass)
But | Commande / Action | Commentaires |
---|---|---|
Se connecter malgré l’erreur | mstsc /admin | Utilise un canal d’administration exempt de licence. Limité à 2 sessions concurrentes. |
Appliquer la GPO immédiatement | gpupdate /force | Après avoir configuré le mode et le serveur de licences. |
Redémarrer le service RDS | Restart-Service TermService -Force | Coupera les sessions en cours ; planifiez un créneau. |
Vérifier la prise en compte | gpresult /r /scope computer | Confirme que les paramètres de Licensing sont appliqués. |
Dépannage approfondi
1) Le Diagnoser signale “licensing mode not configured”
- Revalidez la GPO : Set the Remote Desktop licensing mode → Enabled → mode correct.
- Contrôlez le registre :
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Licensing Core\LicensingMode
doit valoir2
(Per Device) ou4
(Per User). - Redémarrez
TermService
.
2) Le Diagnoser indique “no license servers available”
- GPO Use the specified license servers activée avec le FQDN (évitez les alias non résolus).
- Testez
ping
/Resolve-DnsName
/Test-NetConnection -Port 135
vers le serveur de licences. - Vérifiez que le service Remote Desktop Licensing tourne sur le serveur ciblé.
3) “CAL installed but not issued” en Per Device
- Le serveur doit délivrer une CAL à chaque appareil. Laissez le poste se reconnecter pour que l’émission se fasse.
- Si nécessaire, libérez une CAL périmée côté Licensing Manager pour un appareil qui n’existe plus.
4) Workgroup ou DMZ sans GPO
- Utilisez la méthode WMI/registre (cf. plus haut) pour pointer l’hôte RDSH vers le serveur de licences.
- Ouvrez
TCP 135
et la plage RPC dynamique entre l’hôte RDSH et le serveur de licences.
5) Vous ne souhaitez plus de RDSH sur l’hôte Hyper‑V
- Connectez‑vous en
mstsc /admin
. - Server Manager › Remove Roles and Features → supprimez Remote Desktop Session Host.
- Redémarrez : vous retrouvez 2 canaux d’administration, sans dépendre d’un serveur de licences.
Bonnes pratiques et sécurité
- Séparer les rôles Hyper‑V / RDSH : architecture plus sûre et plus prévisible lors des mises à jour.
- NLA et TLS : exigez l’authentification au niveau réseau (NLA) et un certificat TLS valide sur l’hôte RDSH.
- Supervision : surveillez l’état des CAL, l’uptime du serveur de licences et les journaux RDS.
- Automatisation : consignez vos choix (mode, serveur de licences) dans une GPO ou un script d’init pour tout nouvel hôte.
FAQ (rapide)
Q : Puis‑je “réinitialiser” la période de grâce ?
R : Non. Il n’existe pas de méthode supportée. Supprimer la clé GracePeriod
est une violation de licence.
Q : Dois‑je installer le rôle “RD Licensing” sur le même serveur que RDSH ?
R : Pas nécessairement. Vous pouvez centraliser le serveur de licences (une seule instance pour plusieurs hôtes).
Q : Les CAL 2016 fonctionnent‑elles avec un hôte 2019 ?
R : Non. Les CAL doivent être au moins de la version de l’hôte. En revanche, des CAL 2019 couvrent 2016/2012 R2.
Q : Pourquoi mes VM restent accessibles alors que l’hôte ne l’est plus ?
R : Les VM n’exécutent vraisemblablement pas le rôle RDSH ; elles sont donc restées en mode Administration à distance (2 canaux).
Annexes : commandes utiles
Tâche | Commande |
---|---|
Lister les fonctionnalités RDS | Get-WindowsFeature *RDS* |
Installer le rôle Licensing | Install-WindowsFeature RDS-Licensing -IncludeManagementTools |
Vérifier l’état des services | Get-Service TermService, TermServLicensing |
Forcer l’application GPO | gpupdate /force |
Rapport GPO machine | gpresult /r /scope computer |
Test réseau RDP/RPC | Test-NetConnection <cible> -Port 3389 / -Port 135 |
Vérifier le mode de licences | Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Licensing Core" LicensingMode |
Redémarrer RDS (impactant) | Restart-Service TermService -Force |
Checklist “prête à l’emploi”
- Le rôle Remote Desktop Licensing est installé et activé.
- Les CAL correctes sont installées (quantité, version, mode).
- Sur l’hôte RDSH : mode de licence configuré et serveur de licence spécifié (GPO ou registre).
- RPC accessible (TCP 135 et RPC dynamique si filtré) + RDP (TCP 3389).
- RD Licensing Diagnoser ne signale plus d’erreur.
- Un test depuis un poste client ouvre une session non‑administrative sans message d’erreur.
Conclusion
Le message « No Remote Desktop License Server available » n’est pas une panne : il signale un manque de configuration après la période de grâce RDS. En activant un serveur de licences, en déployant vos CAL et en référençant clairement ce serveur sur l’hôte RDSH, vous restaurez l’accès en production. Profitez‑en pour durcir l’architecture : idéalement, gardez l’hôte Hyper‑V minimal et déplacez le rôle RDSH dans une VM dédiée.
Référence rapide : informations complémentaires
- Durée de grâce : 120 jours dès la première connexion RDP post‑installation du rôle RDSH.
- Compatibilité des CAL : CAL 2019 → ok pour hôtes 2019/2016/2012 R2 ; l’inverse non.
- Serveur de licences unique pour plusieurs hôtes : oui, via GPO ou registre
LicenseServers
. - Ports requis : TCP 3389 (RDP), TCP 135 (RPC), RPC dynamique si filtrage strict.
- Redémarrage : après changement de licence/stratégie, redémarrez
TermService
ou le serveur.