Article ID: 112775, created on Mar 12, 2015, last review on Apr 14, 2015

  • Applies to:
  • Virtuozzo containers for Windows

Symptômes

Vous ne parvenez pas à établir une connexion à distance Remote Desktop (RDP) à un conteneur Virtuozzo (ex-Parallels Virtuozzo Containers, PVC).

Résolution

Suivez les étapes ci-après pour résoudre le problème :

  1. Vérifiez s'il est possible d'accéder au conteneur via le réseau par d'autres moyens. Si vous ne parvenez pas à accéder au conteneur, suivez les étapes générales pour résoudre les problèmes de connexion au réseau (par exemple, Résoudre les problèmes de réseau et tester les paramètres réseau, en anglais).

  2. Vérifiez si une configuration IPSec / du pare-feu / du routage bloque la connexion RDP au conteneur.

    Arrêtez les services dans le conteneur et vérifiez si le problème persiste :

    • Windows 2003 :

      net stop /y ipnat
      net stop /y sharedaccess
      net stop /y remoteaccess 
      net stop /y policyagent
      net stop /y umrdpservice
      
    • Windows 2008 :

      net stop /y bfe & net stop /y bfe
      net stop /y ipnat
      

    REMARQUE : vérifiez si vous exécutez la commande net stop /y bfe sur le Hardware Node. En effet, cette commande peut rendre le Hardware Node totalement indisponible au réseau. Pour restaurer la connectivité, il est nécessaire d'accéder au Hardware Node via la console KVM et d'exécuter à nouveau net stop /y bfe.

    Si l'arrêt des services permet de restaurer la fonction RDP, la configuration du pare-feu doit être révisée.

  3. Les logiciels tiers réécrivent les fichiers système dans le conteneur pendant l'installation. Vérifiez la taille des bibliothèques et des pilotes appropriés :

    • Dans le répertoire %vzroot%\private\CTID\root\windows\system32\drivers\ :

      rdpwd.sys
      RDPCDD.sys
      tdtcp.sys
      termdd.sys
      
    • Dans le répertoire %vzroot%\private\CTID\root\windows\system32\ :

      termsrv.dll
      rdpcorekmts.dll
      rdpwsx.dll
      rdrmemptylst.exe
      cryptsvc.dll
      crypt32.dll
      

    Si les fichiers ci-dessus ne sont pas de taille zéro, restaurez les liens vers les Hardware Node comme indiqué ici :

    vzfsctl lnkctl 101 --link %vz_root%\private\101\root\windows\system32\drivers\rdpwd.sys --dst \windows\system32\drivers\rdpwd.sys --system
    

    Sinon, ces fichiers risquent de devenir des liens corrompus après la migration du conteneur. Vérifiez s'ils ne sont pas de taille zéro dans le répertoire %vzroot%\root\CTID\C\... correspondant.

  4. Il n'y a pas assez de ressources système pour établir une connexion RDP. Cela peut être dû à une mémoire insuffisante ou à une limite du nombre de "numsessions" ou du nombre de processus. Vérifiez ceci en exécutant la commande suivante sur le Hardware Node :

    vzlist CTID -o vprvmem,vprvmem.b,numsessions,numsessions.b,numproc,numproc.b
    

    Consultez l'article La connexion RDP ne fonctionne pas : ressources insuffisantes.

  5. Vérifiez si la valeur fDenyTSConnections est définie sur 0 dans la clé de registre HKEY_LOCAL_MACHINE\vzCTID\MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server.

  6. Vérifiez si la valeur fEnableWinStation est définie sur 1 dans la clé de registre HKEY_LOCAL_MACHINE\vzCTID\MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp et redémarrez le service de configuration Remote Desktop :

    net stop /y sessionenv && net start sessionenv
    
  7. La connexion port par défaut pour RDP (3389) a bien été modifiée dans le conteneur. Exécutez la requête de registre suivante sur le Hardware Node pour confirmer ceci :

    reg query "HKLM\vzCTID\MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
        portnumber    REG_DWORD    0xd3d
    

    "0xd3d" est une valeur Hex pour 3389.

  8. Vérifiez si le port RDP est écouté dans un conteneur :

    C:\>vzctl enter CTID
    
    C:\WINDOWS\system32>netstat -an | findstr 3389
    

    Le port TCP doit avoir le statut "LISTENING".

  9. Si les services Remote Desktop sont écoutés mais si le port 3389 n'est pas écouté, vérifiez si le registre du conteneur a les paramètres corrects du périphérique vidéo :

    C:\>reg query  "HKLM\vzCTID\MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\VIDEO\disc"
    
    HKEY_LOCAL_MACHINE\vzCTID\MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\VIDEO\disc
        VgaCompatible    REG_SZ    \Device\Video0
        \Device\Video0    REG_SZ    \REGISTRY\Machine\System\CurrentControlSet\Services\TSDDD\Device0
    
    C:\>reg query  "HKLM\vzCTID\MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\VIDEO\rdpdd"
    
    HKEY_LOCAL_MACHINE\vzCTID\MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\VIDEO\rdpdd
        \Device\Video0    REG_SZ    \REGISTRY\Machine\System\CurrentControlSet\Services\RDPDD\Device0
        VgaCompatible    REG_SZ    \Device\Video0
    
  10. Un logiciel tiers occupe le port 3389, c'est pourquoi les services du Terminal ne peuvent pas y être associés. Pour vérifier ceci, changez le port RDP par défaut 3389 en valeur personnalisée dans le registre (voir ci-dessus) et essayez d'établir la connexion.

    Dans ce cas, vous pouvez voir l'erreur suivante dans l'Afficheur d’évènements du conteneur :

    Terminal Server session creation failed. The relevant status code was 0x2740.
    

    Consultez l'article Vous ne pouvez pas établir une session Bureau à distance sur un ordinateur exécutant un des produits concernés.

    Remarque : suivez les instructions de l'article Exporter le log d'événements dans un fichier pour exporter les messages de l'Afficheur d'événements depuis le conteneur sans session RDP.

  11. Un conflit d'adresses IP sur le réseau peur entraîner une connexion RDP instable. Résolvez le problème conformément à l'article Test IP-to-MAC Address Resolution with ARP (en anglais).

  12. L'erreur suivante est enregistrée dans le Log d'événements dans le conteneur :

    Terminal Server session creation failed. The relevant status code was 0xC0000034
    

    Consultez l'article Réception du message d'erreur "Le client n'a pas pu établir de connexion avec l'ordinateur distant" lorsque vous essayez d'établir une connexion Bureau à distance avec un ordinateur Windows XP (en anglais).

  13. L'erreur suivante est enregistrée dans le Log d'événements dans le conteneur :

    Terminal Service start failed. The relevant status code was Error: 0xc004f028
    

    Remplacez \Windows\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareLicensing\tokens.dat dans le conteneur par le même fichier issu du Hardware Node.

  14. Suivez les instructions de l'article n° 113719 si l'erreur suivante est affichée dans l'Afficheur d'évènements du conteneur :

    The RDP protocol component "DATA ENCRYPTION" detected an error in the protocol stream and has disconnected the client
    
  15. Une connexion RDP peut être établie vers le conteneur, mais le bureau reste vide. Le fichier binaire \Windows\explorer.exe est peut-être absent ou corrompu dans le conteneur. Vérifiez et remplacez-le par le fichier identique du node. Voici d'autres fichiers importants pour les sessions RDP :

    \Windows\System32\csrss.exe
    \Windows\System32\smss.exe
    \Windows\System32\winlogon.exe
    
  16. Les virus peuvent interférer avec le Terminal Server et bloquer la connexion RDP. Exécutez le logiciel antivirus pour éliminer cette possibilité.

  17. Consultez l'article n° 1286, si vous avez uniquement des problèmes pour vous connecter via RDP sous certains comptes.

  18. Consultez l'article n° 2199, si vous ne parvenez pas à vous connecter via RDP dans un environnement virtuel, même si le Terminal Server fonctionne correctement.

2897d76d56d2010f4e3a28f864d69223 d02f9caf3e11b191a38179103495106f 965b49118115a610e93635d21c5694a8

Email subscription for changes to this article
Save as PDF