Comment améliorer le travail avec Microsoft Remote Desktop

Je veux partager quelques conseils sur la configuration d'une connexion à distance aux postes de travail via RDP. Je vais vous dire comment mettre à niveau l'ancien RPC-HTTP vers UDP, louer et réprimander Windows 10 et AVC, je trouverai une solution à plusieurs problèmes typiques.

Nous pensons que la passerelle Bureau à distance (RDGW) est utilisée pour la connexion et les postes de travail agissent comme des serveurs. L'utilisation de RDGW est très pratique car la passerelle devient un point d'entrée commun pour tous les clients. Cela permet de mieux contrôler l'accès, de conserver des enregistrements des connexions et de leur durée. Même si le VPN vous permet de vous connecter directement aux machines qui fonctionnent, ce n'est pas la meilleure option.

RDGW est rapide, facile à configurer et Let's Encrypt et win-acme résolvent facilement le problème avec un certificat de confiance.

Il existe trois protocoles de transport sur lesquels le client peut se connecter au serveur:

RPC-HTTP ( mauvais )
HTTP ( meilleur )
HTTP + UDP ( excellent )

Par serveur, nous entendons une machine qui fonctionne, par un client - la maison.
La première chose à faire est de transformer «mauvais» en «excellent».

Mettre à niveau RPC-HTTP vers HTTP


La connexion à une session à l'aide de RPC-HTTP est facile à déterminer par l'apparence de la bande de connexion.



Il n'y a pas d'icône de qualité de connexion (à ce sujet ci-dessous), ce qui signifie que nous utilisons l'ancien RPC enveloppé dans TLS - c'est très lent. Le point, bien sûr, n'est pas seulement dans le wrapper - le protocole lui-même change avec chaque version du système d'exploitation, les codecs, les algorithmes de compression d'image changent. Plus le protocole est frais, mieux c'est.

Que faire?

Windows XP ou Vista


Sous XP, vous pouvez augmenter le protocole de 5.1 à 7. Le correctif windowsxp-kb969084-x86.exe.

Sous Vista, de 6 à 7. Le correctif a le même numéro, les fichiers windows6.0-kb969084-x64.msu ou Windows6.0-KB969084-x86. .msu

Mais RDP 7 ne fonctionne pas sur HTTP et UDP. Seule la mise à niveau du client et du serveur vers Windows 7 et versions ultérieures vous aidera.

Windows 7

Vous devez d'abord mettre à niveau le protocole vers RDP 8.1, puis l'activer. La prise en charge est ajoutée par des mises à jour regroupées dans un seul package de téléchargement:

www.microsoft.com/en-US/download/details.aspx?id=40986
Windows6.1-KB2574819-v2-x64.msu
windows6.1-kb2592687-x64.msu
Windows6.1-KB2830477-x64.msu
Windows6.1-KB2857650-x64.msu
Windows6.1-KB2913751-x64.msu (remplacé par kb2923545)

windows6.1-kb2923545-x64.msu

Vous obtenez donc à la fois le nouveau client mstsc.exe et la prise en charge de RDP 8.1 pour le côté serveur du système d'exploitation.
C'était:





Il est devenu:



Après cela, le protocole doit être activé avec la clé de registre (pour cela, vous pouvez utiliser le modèle adm fourni avec Windows 7).

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"fServerEnableRDP8"=dword:00000001
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows NT\Terminal Services]
"fServerEnableRDP8"=dword:00000001

Activez la prise en charge du transport UDP dans la stratégie de groupe.



Nous redémarrons le serveur avec Windows 7. Le même cas où vous devrez peut-être redémarrer deux fois - la valeur dans le registre doit être définie avant que RDP soit activé et la stratégie de groupe est appliquée plus tard.

Si tout a fonctionné , alors lorsque vous vous connectez au serveur, une icône de qualité de connexion (comme dans un téléphone pour un réseau mobile) apparaîtra dans la barre de session:



Windows 8 et plus récent Le

protocole fonctionne hors de la boîte.

Mettre à niveau HTTP vers HTTP + UDP


Si votre réseau n'est pas sujet à la perte de paquets, UDP améliore considérablement (pour la CAO - considérablement) la réactivité du serveur en utilisant FEC pour réduire la retransmission, ainsi qu'en commutant la confirmation de livraison de paquets de la pile système TCP / IP au niveau du protocole RDP-UDP.

Une session de contrôle principale via HTTP est connectée à partir de chaque client (un clavier / souris est également transmis dans ce canal), plus une ou plusieurs sessions UDP pour transmettre une image ou d'autres canaux virtuels.

Nous ne toucherons que la pointe de l'iceberg. Il existe 3 versions différentes du protocole RDP-UDP. De plus, UDP lui-même peut fonctionner en deux modes: UDP-R (fiable) et UDP-L (avec perte). Rien ne se passe avec Microsoft. Mais puisque rien ne dépend de nous ici, gardez à l'esprit - plus le système d'exploitation est récent, le sujet utilise un protocole plus moderne.

À l'extérieur, RDP-UDP est enveloppé dans la sécurité de couche de transport de datagrammes (DTLS) RFC4347, comme vous pouvez le voir en ouvrant Wireshark.

Plus de détails dans les documents:
[MS-RDPEMT]: Remote Desktop Protocol: multitransport Extension
[MS-RDPEUDP]: Remote Desktop Protocol: UDP Transport Extension
[MS-RDPEUDP2]: Remote Desktop Protocol: UDP Transport Extension Version 2
Où mal, correct vous êtes les bienvenus.

De quoi avez-vous besoin pour activer UDP?

RDP-UDP est pris en charge à partir de RDP 8.

Le port udp / 3389 doit être ouvert sur le client. Si vous l'avez fermé avec un pare-feu local, ACL sur le commutateur ou un pare-feu externe - le port doit être ouvert.

Pour le serveur de passerelle Bureau à distance vers le port tcp / 443, ouvrez udp / 3391.

Le port peut être modifié, voici comment il est configuré:



Pour Windows 7, NLA (Network Level Authentication) doit être activé.



Peut être activé dans la stratégie de groupe



ou via le registre

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"SecurityLayer"=dword:00000001

Quelle est la connexion n'est pas claire. Mais sans NLA sur 7-ke ne fonctionne pas, sur les versions plus récentes de NLA pour le travail, UDP n'est pas requis.

Après avoir établi une session sur HTTP, le client et le serveur tentent de négocier une connexion UDP. En cas de perte ou de retard de paquets, la session UDP ne démarre pas. L'algorithme d'échec de négociation UDP exact n'est pas entièrement compris.

Si tout est configuré, puis après la connexion, cliquez sur le bouton de qualité du lien. La fenêtre indiquera que l'UDP est négocié.



Sur la passerelle, cela ressemble à ceci:



Windows 10

Si vous avez Windows 10 sur le serveur et sur le client, c'est l'option la plus rapide et la plus sans problème. Microsoft finalise activement RDP, et dans les dernières versions 10, vous pouvez compter sur une bonne vitesse. Les collègues n'ont pas pu détecter la différence entre Citrix et Windows 10 RDP dans la vitesse d'AutoCAD.

Il existe un bon article sur l'évolution des codecs RDP basés sur AVC dans Windows 10
Remote Desktop Protocol (RDP) 10 Améliorations AVC / H.264 dans Windows 10 et Windows Server 2016 Aperçu technique La

correspondance d'AVC avec l'encodage matériel peut être consultée dans le journal des événements (voir l'article ci-dessus pour plus de détails) ):





Je note seulement qu'il y a toujours un problème de distorsion même en h.264 4: 4: 4. Il attire immédiatement votre attention si vous travaillez dans PowerShell ISE - le texte d'erreur s'affiche avec une distorsion désagréable. De plus, tout va bien dans la capture d'écran et la photo. La magie.

Un signe indirect du travail d'AVC apparaît également de temps en temps des carrés verts dans les coins.

AVC et le codage matériel dans les nouvelles versions devraient fonctionner dès le départ, mais la stratégie de groupe n'est jamais superflue: étant



donné qu'AVC est codé matériel avec une carte vidéo, la mise à jour des pilotes vidéo est une bonne idée.

À propos des problèmes


XP et Vista

Si le problème se produit sous Windows XP ou Vista, essayez d'abord de mettre à jour le protocole vers la version 7 (écrit au début de l'article). Assurez-vous d'activer la prise en charge de CredSSP. Microsoft a déjà supprimé des articles sur le site, mais Internet se souvient .

Si cela n'aide pas, "le médecin parle à la morgue, puis à la morgue". Ce que le système d'exploitation a connu au cours des 15 dernières années est préférable de ne même pas y penser.

NLA

Parfois, il est utile de désactiver NLA sur le serveur. Cela n'a pas fonctionné, les voitures d'origine sont toutes différentes.

NTLM

Certains clients tentent de se connecter à l'aide de NTLMv1. Les raisons sont différentes, mais vous pouvez le corriger sur le client comme ceci:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"LmCompatibilityLevel"=dword:00000003

Le redémarrage est requis.

Si vous êtes jeune et que vous n'avez peur de rien, alors il existe une solution plus radicale: désactiver la liaison de canaux sur la passerelle Bureau à distance

HKLM\Software\Microsoft\Windows NT\CurrentVersion\TerminalServerGateway\Config\Core
Type: REG_DWORD
Name: EnforceChannelBinding
Value: 0 (Decimal)

Vous n’avez pas à le faire. Mais nous l'avons fait. :-) Pour un client qui a insisté (pas de mal, a insisté) que NTLMv1 sur les postes de travail dont il avait besoin. Je ne sais pas, peut-être que des serveurs sur NT4 sans SP fonctionnent toujours.

Désactivation de RDP 8+ dans Windows 10

Si tout le reste échoue et que les idées s'épuisent, vous pouvez utiliser la clé non documentée pour rétrograder le protocole RDP vers la version 7.

[HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client]
"RDGClientTransport"=dword:00000001

Je ne l'ai pas fait moi-même et je ne vous conseille pas. Mais à quelqu'un, ils écrivent que cela aide.

Le

composant DrWeb Dr.Web SpIDerGate peut interdire la connexion. Dans ce cas, une erreur est renvoyée:

Dans les statistiques Dr.Web, il y aura une entrée:

Dans les commentaires sur cet article, un employé Dr.Web m'a contacté et notre problème a été résolu dans la prochaine mise à jour des bases de données antivirus.
Si vous avez la même erreur, il est préférable de contacter le support.
Comme solution temporaire, vous pouvez ajouter l'URL de votre RDGW aux exceptions:

Et seulement si cela n'a pas aidé à désactiver complètement le composant SpIDer Gate .

Proxy système J'ai

rencontré un ordinateur mis hors service d'une entreprise où un TMG local était enregistré en tant que proxy système et la connexion à RDGW ne fonctionnait pas. Cela peut être résolu comme ceci:

netsh winhttp show proxy && netsh winhttp reset proxy

Changer de disposition de clavier

Parfois, des dispositions supplémentaires viennent. Vous pouvez désactiver le transfert de mise en page à partir du client
[HKLM\System\CurrentControlSet\Control\Keyboard Layout]
"IgnoreRemoteKeyboardLayout"=dword:00000001

Problèmes DPI La

mise à l'échelle provient de la machine cliente, et si elle coûte 125% sur un ordinateur portable domestique, elle sera la même sur une machine fonctionnelle. Sur les serveurs, cela peut être désactivé, mais sur les postes de travail, je n'ai pas pu trouver comment. Mais l'App Store de Windows 10 a un client «moderne» .

Vous pouvez y configurer DPI:



Comment surveiller une passerelle avec RDGW


Il existe un compteur de performances «TS Gateway \ Current Connections», qui est un peu bogué s'il n'y a pas de connexion ou si le serveur n'a pas redémarré depuis longtemps. Il montre exactement le nombre de connexions, mais comme nous nous en souvenons, pour HTTP + UDP, il y en a au moins deux, et peut-être plus. Par conséquent, ce n'est pas un indicateur complètement objectif du nombre de connexions des employés.

Il existe une classe WMI Win32_TSGatewayConnection. Son contenu correspond à ce que vous voyez dans la section Surveillance de la passerelle Bureau à distance.

Avec lui, le nombre de connexions peut être calculé plus précisément:

Get-WmiObject -class "Win32_TSGatewayConnection" -namespace "root\cimv2\TerminalServices" 
|?{$_.transportprotocol -ne 2}|select username,connectedresource|sort username|Get-Unique -AsString| measure|select -ExpandProperty count

Pour le plaisir, il existe un utilitaire Analyseur d'affichage à distance . La version gratuite ne m'a rien montré d'utile, mais tout à coup, elle sera utile pour quelqu'un.

Mais qu'en est-il du réglage fin, du réglage de quelques dizaines de paramètres de session?

Le principe de Pareto est ici approprié: 20% des efforts donnent 80% du résultat. Si vous êtes prêt à investir votre temps dans les 20% restants du résultat - excellent. Gardez à l'esprit que lorsque vous lisez un article sur la configuration d'un protocole dans Windows 7, vous ne savez pas de quel protocole l'auteur a parlé - 7, 8 ou 8.1. Lorsque vous lisez à propos de Windows 10 sans spécifier de version, les problèmes sont les mêmes. Par exemple, ils écrivent que dans les nouvelles versions de Windows 10, le codec AVC / h.264 a changé pour RDPGFX_CODECID_AVC444 V2 , et dans Windows Server 2016, RDPGFX_CODECID_AVC444 reste.

De tous ces conseils, nous utilisons seulement deux paramètres:

  1. Couleur 16 bits, vous pouvez en lire plus dans l'article MS RDP Performance / Bandwidth Usage
  2. Désactivation du lissage des polices lissage des polices: i: 0 dans l'article ci-dessus ou Hôtes de session Bureau à distance de réglage des performances

Je doute qu'ils donnent un résultat tangible.

Nous sommes donc arrivés à la fin de l'article. Je voulais être plus petit, mais il s'est avéré comme toujours. Je suis heureux si ces conseils aident quelqu'un à gagner du temps ou à améliorer la configuration de son infrastructure.

All Articles