Dépannage de RDP


Dans certains cas, il est possible que vous ne puissiez pas vous connecter à votre instance de machine virtuelle (VM) Windows Compute Engine avec RDP. Cela peut être dû à des erreurs de configuration, à des erreurs réseau ou à une erreur du processus de démarrage.

Ce document propose des conseils et des approches pour dépanner et résoudre les problèmes RDP courants.

Vérifier que la VM est en ligne et prête

Une fois le démarrage de la VM terminé, ce qui peut prendre quelques minutes, confirmez son état via l'une des méthodes suivantes :

Port série 1

Le port série 1 permet de consigner l'activité du système et des applications. Consultez ses résultats pour déterminer si le démarrage de votre VM est terminé et si les services ont démarré correctement.

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur le nom de la VM pour laquelle vous souhaitez afficher les journaux. La page "Informations sur l'instance de VM" s'affiche.

  3. Sous journaux, sélectionnez Port série 1.

  4. Examinez la sortie du port série 1 et recherchez un résultat semblable à celui-ci :

    BdsDxe: loading Boot0003 "Windows Boot Manager" from HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi
    BdsDxe: starting Boot0003 "Windows Boot Manager" from HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi
    
    UEFI: Attempting to start image.
    Description: Windows Boot Manager
    FilePath: HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi
    OptionNumber: 3.
    
    2021/04/13 10:50:22 GCEGuestAgent: GCE Agent Started (version 20210128.00)
    2021-04-13T10:50:23.4621Z OSConfigAgent Info: OSConfig Agent (version 20210217.00.0+win@1) started.
    2021/04/13 10:50:42 GCEMetadataScripts: Starting startup scripts (version 20200129.00).
    2021/04/13 10:50:42 GCEMetadataScripts: No startup scripts to run.
    

Une sortie contenant GCEGuestAgent ou GCEMetadataScripts confirme que Windows a démarré correctement. Essayez de vous reconnecter à votre VM à l'aide du protocole RDP.

Port série 2

Le port série 2 fournit une connexion interactive à la VM et affiche également le résultat de la console d'administration spéciale (SAC, Special Administrative Console). Vous pouvez utiliser la console série 2 pour déterminer si les services système ont démarré correctement.

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur le nom de la VM pour laquelle vous souhaitez afficher les journaux. La page "Informations sur l'instance de VM" s'affiche.

  3. Sous Journaux, développez Plus, puis cliquez sur Port série 2 (console).

  4. Examinez la sortie du port série 2 et recherchez un résultat semblable à celui-ci :

    BdsDxe: loading Boot0003 "Windows Boot Manager" from HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi
    BdsDxe: starting Boot0003 "Windows Boot Manager" from HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi
    
    UEFI: Attempting to start image.
    Description: Windows Boot Manager
    FilePath: HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi
    OptionNumber: 3.
    
    <machine-info>
    <name>WINDOWS</name>
    <guid>b7ab5000-4000-e000-e000-bc5a738da000</guid>
    <processor-architecture>AMD64</processor-architecture>
    <os-version>10.0</os-version>
    <os-build-number>17763</os-build-number>
    <os-product>Windows Server 2019 Datacenter</os-product>
    <os-service-pack>None</os-service-pack>
    </machine-info>
    Computer is booting, SAC started and initialized.
    Use the "ch -?" command for information about using channels.
    EVENT: The CMD command is now available.
    SAC>
    

Une sortie contenant SAC started and initialized ou CMD command is now available confirme que Windows a démarré correctement. Essayez de vous reconnecter à votre VM à l'aide du protocole RDP.

Capture d'écran de la VM

Les captures d'écran de VM fournissent une représentation visuelle de l'état d'une VM, semblable à celle d'un écran d'ordinateur.

  1. Avant de pouvoir effectuer une capture d'écran de votre VM, vous devez activer son affichage virtuel. Si vous n'avez pas encore activé l'affichage virtuel, consultez la section Activer les affichages virtuels.

  2. Faites une capture d'écran. Pour en savoir plus, consultez la section Effectuer une capture d'écran à partir d'une VM.

  3. Examinez la capture d'écran pour vérifier si l'instance est prête.

Comparez votre capture d'écran aux éléments suivants pour déterminer l'état actuel :

Si Windows n'a pas démarré correctement après quelques minutes, consultez le guide de Dépannage de Windows.

Vérifier la connectivité entre votre station de travail et l'instance de VM

Si vous rencontrez des problèmes lors de la connexion de votre VM Windows, il est recommandé de déterminer si le problème concerne la station de travail que vous utilisez pour vous connecter ou la VM à laquelle vous vous connectez. Vérifiez la connectivité entre votre poste de travail et la VM en exécutant la commande suivante à partir de votre poste de travail Linux, macOS ou Windows :

curl -v telnet://DESTINATION_IP_ADDRESS:PORT

Remplacez les éléments suivants :

  • DESTINATION_IP_ADDRESS : adresse IP de votre VM Windows
  • PORT : port configuré pour se connecter via RDP sur votre VM Windows.

Vous pouvez également utiliser les tests de connectivité pour une vérification plus approfondie de la connectivité entre l'instance de VM et d'autres produits et services Google Cloud. En outre, il peut également être utile de configurer un hôte bastion sur le même sous-réseau pour isoler les problèmes de connectivité RDP sur l'instance de VM.

Vérifier le mot de passe de votre instance Windows

Chaque instance Windows Compute Engine doit être associée à un mot de passe local si elle ne fait pas partie d'un domaine ou si elle n'a pas été déployée à partir d'une image personnalisée. Vérifiez que vous avez défini le bon mot de passe en vous connectant à la VM via l'outil de ligne de commande Google Cloud CLI ou la console Google Cloud. Pour en savoir plus, consultez la section Se connecter à des VM Windows à l'aide de lac onsole d'administration spéciale (SAC).

En cas de problème de connexion, essayez de créer ou de réinitialiser le mot de passe. Pour plus d'informations, consultez la section Créer des mots de passe pour les VM Windows.

Vérifier si vous utilisez Windows Server Core

Lors de la connexion via RDP, si une fenêtre d'invite de commande s'affiche sur un arrière-plan vide, cela signifie probablement que vous utilisez Windows Server Core. Pour confirmer cela, exécutez la commande ci-dessous :

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType

La présence de Server Core dans votre résultat confirme que vous utilisez bien l'édition Windows Core.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
    InstallationType    REG_SZ    Server Core

Si vous avez besoin d'une interface utilisateur graphique pour votre charge de travail, consultez la section Créer une instance Windows, qui contient l'édition Expérience utilisateur au lieu de Server Core. Vous pouvez également consulter la documentation Microsoft sur la gestion du serveur Windows Core.

Vérifier vos règles de pare-feu VPC

Google Compute Engine applique automatiquement une règle de pare-feu autorisant le trafic RDP aux nouveaux projets. Si vous avez un projet existant ou si avez modifié les configurations, il est possible que la règle de pare-feu par défaut qui autorise RDP n'ait pas été activée. Vérifiez l'activation de la règle autorisant le trafic RDP à se connecter au réseau sur lequel se trouve l'instance concernée.

Pour vérifier si la règle de pare-feu default-allow-rdp existe dans le projet, consultez la page Règles de pare-feu ou exécutez la commande gcloud CLI suivante :

gcloud compute firewall-rules list

En l'absence de règle vous pouvez en créer une nouvelle à l'aide de la commande suivante :

gcloud compute firewall-rules create allow-rdp --allow tcp:3389

Vérifier l'adresse IP externe

Veillez à vous connecter à l'adresse IP externe qui correspond à l'instance. Affichez l'adresse IP de l'instance à partir de la page d'instance de VM ou à l'aide de la commande gcloud CLI suivante :

gcloud compute instances list

Utiliser les services Bureau à distance de Windows

Si les services Bureau à distance de Windows (anciennement Terminal Services) sont installés sur votre instance, les conditions des licences d'accès client (CAL, Client Access License) s'appliquent. Avec ces CAL, les connexions RDP échoueront dans l'une des conditions suivantes :

  • Vous avez utilisé toutes vos licences disponibles.
  • Votre licence est installée, mais elle n'a pas été configurée ou activée correctement.
  • Votre période d'essai de 180 jours a expiré.

Les symptômes indiquant que vous ne disposez peut-être pas de suffisamment de licences valides incluent des messages tels que :

  • Cette session à distance a été interrompue, car aucun serveur de licences Bureau à distance n'est disponible pour fournir une licence.
  • La session à distance a été interrompue en raison d'une erreur liée à la gestion des licences sur le serveur Terminal Server.
  • La session à distance a été interrompue, car aucune licence d'accès client Bureau à distance n'est disponible pour cet ordinateur.

Si vos connexions RDP échouent, vous pouvez utiliser le commutateur admin pour vous connecter à l'instance à des fins administratives. Vous pouvez effectuer cette opération sur une machine Windows en utilisant le client Connexion Bureau à distance natif.

%SystemRoot%\System32\mstsc.exe /admin

Deux sessions simultanées de bureau à distance pour l'administration sont incluses dans l'image Windows Server et SQL Server à la demande.

Pour résoudre les problèmes liés aux connexions RDP, achetez de nouvelles licences RDS pour votre instance. Pour plus d'informations sur les CAL, consultez la documentation Microsoft. Sinon, si les services Bureau à distance ne sont pas requis, désinstallez-les et utilisez les connexions RDP classiques.

Valider la configuration et les ressources au niveau du système d'exploitation

Si l'environnement et les configurations invités de l'instance sont corrects, il se peut que le système d'exploitation de l'instance soit mal configuré. De plus, sans ressources adéquates, il est possible qu'une connexion RDP ne soit pas établie. Pour valider la configuration au niveau du système d'exploitation, connectez-vous à Windows SAC :

Vérifier que la VM dispose des ressources nécessaires

Vérifiez que l'utilisation du processeur, de la mémoire, du disque et de l'espace disque disponible n'atteint pas leurs limites. Ces données peuvent être inspectées en affichant les métriques d'observabilité dans la console Google Cloud. Certaines métriques ne sont disponibles que pour les VM sur lesquelles l'agent Ops est installé. Si l'agent Ops n'est pas installé, utilisez les commandes suivantes lorsqu'il est connecté à SAC :

Utilisation du processeur, de la mémoire, du disque et de la capacité du disque

  • Utilisation du processeur :
    typeperf "\Processor(_Total)\% Processor Time" -sc 5
  • Utilisation de la mémoire :
    typeperf "\Memory\% Committed Bytes In Use" -sc 5
  • Espace disque utilisé :
    typeperf "\LogicalDisk(*)\% Idle Time" -sc 5
  • Capacité du disque :
    fsutil volume diskfree C:

Voici les utilisations de ressources recommandées pour une connexion RDP. Toutefois, il ne s'agit que d'estimations, qui peuvent varier d'une instance à l'autre.

  • Processeur : < 80%
  • Mémoire : < 80%
  • Espace disque : > 20%
  • Disque inactif : > 50%

Si l'une des estimations suggérées atteint ses limites, vous pouvez modifier cette ressource pour l'instance de VM. Pour modifier les propriétés d'une VM, découvrez comment modifier le type de machine d'une instance de VM et augmenter la taille d'un disque persistant.

Vérifier la configuration du système d'exploitation

Connectez-vous à l'instance via SAC et exécutez les commandes suivantes pour vous assurer que l'instance accepte les connexions :

  1. Vérifiez que l'adaptateur Ethernet est activé :

    • Commande :
      netsh interface show interface
    • Réussite : l'état de l'administrateur est défini sur Activé pour le nom d'interface Ethernet.
    • Échec : l'état de l'administrateur est défini sur Désactivé pour le nom d'interface Ethernet.
    • Solution : activez l'adaptateur Ethernet :
      netsh interface set interface Ethernet admin=enabled
  2. Vérifiez que l'instance possède une configuration IP valide :

    • Commande :
      ipconfig /all
    • Réussite : l'adaptateur Ethernet Ethernet affiche une adresse IPv4 du sous-réseau auquel l'instance est attribuée.
    • Échec : aucune adresse IPv4 ou une adresse qui ne correspond pas à celle affichée dans la console Google Cloud.
    • Solution : passez à l'étape suivante.
  3. Vérifiez que DHCP est activé sur l'instance :

    • Commande :
      netsh interface ipv4 show addresses
    • Réussite : le résultat sous Ethernet contient DHCP Enabled: Yes.
    • Échec : le résultat sous Ethernet contient DHCP Enabled: No.
    • Solution : activez le protocole DHCP sur l'adaptateur Ethernet :
      netsh interface ipv4 set address Ethernet dhcp
  4. Vérifiez que le service Bureau à distance ("Remote Desktop Service") est en cours d'exécution :

    • Commande :
      net start | find "Remote Desktop Services"
    • Succès : Remote Desktop Service
    • Échec : ("Remote Desktop Service" n'est pas dans la sortie)
    • Solution : démarrez les services Bureau à distance :
      net start "Remote Desktop Services"
  5. Vérifiez l'activation des connexions à distance :

    • Commande :
      reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
    • Succès : fDenyTSConnections REG_DWORD 0x0
    • Échec : fDenyTSConnections REG_DWORD 0x1
    • Solution : activez les connexions de bureau à distance dans le registre :
      reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /f /v fDenyTSConnections /t REG_DWORD /d 0
  6. Assurez-vous que les connexions de bureau à distance sont activées au niveau du pare-feu Windows :

    • Commande :
      netsh advfirewall firewall show rule name="Remote Desktop -User Mode (TCP-In)"
    • Succès : Enabled:Yes, Direction: In, Profiles: Public, Grouping: Remote Desktop, LocalIP: Any, RemoteIP: Any, Protocol:TCP, LocalPort: 3389, RemotePort: Any, Edge traversal: No, Action: Allow

    • Échec : (résultats inattendus, tels que "Enabled = no")

    • Solution : activez la règle de pare-feu "Bureau à distance" par défaut dans le pare-feu Windows :

      netsh advfirewall firewall set rule group="remote desktop" new enable=Yes

  7. Consultez le numéro de port configuré pour les connexions RDP sur l'instance distante :

    • Commande :
      reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
    • Succès : PortNumber REG_DWORD [PORT NUMBER]
    • Échec : (numéro de port inattendu)
    • Solution : Configurez le numéro de port dans le registre requis pour RDP :

      reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /f /v PortNumber /t REG_DWORD /d [PORT NUMBER]

  8. Vérifiez qu'une autre application n'essaie pas d'utiliser le même port :

    • Commande :
      netstat -ano | find "3389"
    • Réussite : Recherchez une entrée pour le port RDP attribué avec l'état Écouter. Vous pouvez trouver le service correspondant à l'aide de l'identifiant de processus (PID) en utilisant la commande suivante :
      tasklist /svc | find ""
      où PID est l'identifiant de la commande précédente. La sortie ne doit renvoyer que Termservice.
    • Échec : tout élément, à l'exception du Termservice, utilise le port attribué.
    • Solution : Configurez l'application/le service pour utiliser un autre numéro de port.
  9. Assurez-vous que le compte d'utilisateur connecté dispose des autorisations de connexion à distance :

    • Commande :
      net localgroup "Remote Desktop Users"
    • Succès : ("target local/domain username" dans la liste obtenue)
    • Échec : ("target local/domain username" est manquant)
    • Solution : ajoutez la règle "Utilisateurs du Bureau à distance" à un utilisateur du domaine :

      net localgroup "Remote Desktop Users" /add [DOMAIN\USERNAME]

      Le domaine n'est requis que pour les comptes utilisateur d'un système joint à un autre domaine. Pour les comptes locaux, spécifiez uniquement le nom d'utilisateur.

  10. Vérifiez que la négociation de sécurité client/serveur est définie sur sa valeur par défaut :

    • Commande :
      reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer
    • Réussite : SecurityLayer REG_DWORD 0x1
    • Échec : SecurityLayer REG_DWORD 0x0 (ou 0x2)
    • Solution : définissez la valeur de négociation du niveau de sécurité dans le registre :
      reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 1 /f
  11. Lorsque votre instance est connectée à un domaine Active Directory, mais que la connexion n'a pas pu être établie, vous pouvez recevoir le message d'erreur suivant lorsque vous essayez d'accéder à votre instance :

    The remote computer that you are trying to connect to requires Network Level Authentication (NLA), but your Windows domain controller cannot be contacted to perform NLA.
    

    Vérifiez que l'authentification au niveau du réseau (NLA) est définie sur sa valeur par défaut :

    • Commande :
      reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication
    • Réussite : UserAuthentication REG_DWORD 0x0
    • Échec : UserAuthentication REG_DWORD 0x1
    • Solution : définissez la valeur d'authentification au niveau du réseau dans le registre :
      reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
  12. Vérifiez que la taille du MTU ne dépasse pas celle du MTU réseau :

    • Commande :
      netsh interface ipv4 show subinterfaces
    • Réussite : lorsque le nombre qui suit MTU correspond au MTU du réseau VPC.
    • Échec : lorsque le nombre qui suit MTU est supérieur au MTU du réseau VPC.
    • Solution : définissez le MTU de l'interface sur le MTU du réseau VPC :

      netsh interface ipv4 set subinterface Ethernet mtu=MTU_OF_VPC_NETWORK

      Pour plus d'informations sur les incompatibilités de taille du MTU, consultez notre documentation sur la fragmentation des paquets.

  13. Si vous essayez de vous connecter à la VM à l'aide du protocole RDP et que la VM affiche l'écran de disposition du clavier, vous devez sélectionner une langue en vous connectant à Windows SAC. Pour sélectionner une langue, procédez comme suit :

    1. Connectez-vous à SAC.
    2. Ouvrez Powershell en saisissant powershell.
    3. Obtenez la chaîne de langue appropriée.

      Get-WinUserLanguageList
    4. Définissez la mise en page souhaitée. Remplacez LANGUAGE_TAG par la mise en page de langage souhaitée (par exemple, en-US).

      Set-WinUserLanguageList -LanguageList LANGUAGE_TAG -force
    5. Redémarrez votre instance.

      shutdown -r -t 0
  14. Erreurs RDP sur l'écran de connexion mentionnant you need the right to sign in through Remote Desktop Services ou you must be granted the Allow log on through Terminal Services right, le groupe Utilisateurs ou Administrateurs à distance a été supprimé du paramètre de stratégie d'ordinateur local trouvé dans Autoriser la connexion via les services de bureau à distance ouSeRemoteInteractiveLogonRight.

  15. Vérifiez qu'aucune autorisation ne bloque l'authentification des certificats :

    • Commande :
      icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys"
    • Réussite : Le résultat ressemble à Tout le monde:(R,W) BUILTIN\Administrateurs:(F).
    • Échec : La sortie ne correspond pas à Tout le monde:(R,W) BUILTIN\Administrateurs:(F)
  16. Assurez-vous que les paramètres de protection antivirus/des points de terminaison du client permettent d'utiliser le numéro de port et les services configurés.

Vérifier les limites d'expiration des sessions

Si vous êtes en mesure d'établir une connexion RDP, mais que vous êtes déconnecté après un certain temps avec un message indiquant que votre session a expiré, vérifiez que les valeurs suivantes sont celles attendues :

Chemin du registre : HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services

Clés de registre :

  • MaxDisconnectionTime
  • MaxIdleTime
  • MaxConnectionTime
  • MaxDisconnectionTime
  • RemoteAppLogoffTimeLimit

Ces valeurs sont définies en millisecondes. Si ces clés ne figurent pas dans votre registre, il n'y a pas de limite de session sur votre instance de VM. Si ces clés sont présentes dans votre registre, mais que leurs valeurs sont définies sur 0, votre session n'expirera jamais.

Résoudre les problèmes liés au démarrage de Windows

Si les étapes de dépannage ci-dessus n'ont pas résolu votre problème de connexion RDP, votre instance Windows risque de ne pas démarrer ou de ne pas s'exécuter correctement. Dans ce cas, consultez notre guide de dépannage de Windows.

Étapes suivantes