En règle général, afin que les imprimantes locales se connectent directement su la session distante, il faut bien sûr activer l'option "Imprimantes" pour les périphériques locaux dans les options du Bureau à distance. Ensuite, il faut encore que le Terminal Serveur sur lequel on établit la session dispose des drivers correspondant à nos imprimantes. Et c'est là que les choses se corsent.

Imprimante connue par le Terminal Serveur avec le même nom de driver

C'est le cas idéal, l'imprimante est reconnue automatiquement et tout va pour le mieux.

Imprimante connue par le Terminal Serveur, mais avec un autre nom de driver

Souvent, il arrive que l'imprimante locale n'aie pas un driver du même nom que ceux d'origine dans le Terminal Serveur de Microsoft. (par exemple HP DeskJet 720C Series v10.3 et HP DeskJet 722C). Dans ce cas, on peut essayer les deux options suivantes:

  • installer le driver fourni par le fabriquant que l'on a en local sur le terminal serveur (par exemple sur le port local FILE:), puis retirer cette imprimante du terminal serveur (cela ne retirera pas les drivers qui restent installés)
  • éditer le fichier .inf fourni avec le driver du fabriquant afin que le nom du driver soit le même que celui reconnu sur le Terminal Serveur



Mise en place d'un fichier de concordance sur le terminal serveur

Une meilleure approche technique consiste à installer d'une part les drivers à jour sur le terminal serveur (sur le port local FILE:), puis de retirer les imprimantes du terminal serveur et enfin de procéder à la mise en place d'un fichier de concordance qui fera le lien entre le nom du driver fourni par le client de la session distante et le nom du driver existant sur le Terminal Serveur.

  • Editer la registry et se positionner sur la clé HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd
  • Ajoutez la valeur PrinterMappingINFName comme string (REG_SZ) contenant le chemin vers votre fichier de concordance (par exemple C:\windows\inf\ntprintsubs.inf)
  • Ajoutez la valeur PrinterMappingINFSection comme string (REG_SZ) contenant le nom de la section dans le fichier .inf vers laquelle rediriger les recherches (par exemple Printers)
  • Editer le fichier de concordance (par exemple C:\windows\inf\ntprintsubs.inf), chaque ligne dans la rubrique [Printers] contenant la concordance "Nom du pilote d'imprimante du client" = "Nom du pilote d'imprimante existant sur le Terminal Serveur"
[Version]
Signature="$CHICAGO$"

[Printers]
"hp deskjet 5600 series" = "hp deskjet 5600 series (HPA)"
"HP Deskjet 9800 Series" = "HP Deskjet 9800 Printer"



Utilisation du pilote Terminal Services Easy Print (Terminal Serveur 2008 uniquement)

Le pilote Terminal Services Easy Print est un nouveau pilote fourni à partir de Terminal Serveur 2008 et permet de rediriger l'impression directement sur le poste client. C'est alors le drivers du poste client qui se charge de l'interfaçage. Le pilote Terminal Services Easy Print est intégré dans Windows Terminal Serveur 2008, mais il faudra cependant que le logiciel client de connexion distante soit mis à jour à la version 6.1. Il est contenu dans le service pack 1 de Vista ou dans le service pack 3 de Windows XP, mais il peut aussi être téléchargé à l'adresse suivante: http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=6e1ec93d-bdbd-4983-92f7-479e088570ad. Il faudra encore télécharger le Framework .NET 3.5 à l'adresse suivante: http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=333325fd-ae52-4e35-b531-508d977d32a6 (déjà compris dans le service pack 1 de Vista).


Sources: