Serveur d'impression

Isolation du pilote d'imprimante dans Windows 7 et Server 2008 R2 • Helge Klein – Bien choisir son serveur d impression

Le 24 mars 2020 - 8 minutes de lecture

Si vous êtes ne pas fatigué du plantage du spouleur d'impression, cet article n'est pas pour vous. Si vous l'êtes, vous trouverez peut-être intéressante une nouvelle fonctionnalité de la prochaine version de Windows: l'isolement du pilote d'imprimante.

Quelques antécédents

Dans les âges sombres des pilotes d'imprimante NT4 étaient des pilotes de noyau. Du point de vue de la fiabilité, c'était un cauchemar. Étant donné que les pilotes d'imprimante ne le sont pas, n'ont jamais été et ne seront probablement jamais réputés pour leur stabilité, des erreurs dans le code du pilote d'imprimante ont provoqué la vérification des bogues de l'ordinateur (c'est-à-dire présenter l'administrateur frustré avec un écran bleu de la mort, BSOD).

Windows 2000 a apporté une amélioration majeure aux pilotes dits de la version 3 qui sont exécutés en mode utilisateur (bien que, pour des raisons de compatibilité, les pilotes d'imprimante en mode noyau de la version 2 puissent encore être utilisés même aujourd'hui). Les pilotes de la version 3 sont implémentés en tant que DLL chargées par le spouleur d'impression (spoolsv.exe) chaque fois qu'un pilote spécifique est requis pour traiter un travail d'impression.

Jusqu'ici tout va bien. À partir de Windows 2000, les pilotes d'imprimante bogués ne provoquent pas l'arrêt complet de la machine, ils bloquent «uniquement» le processus du spouleur. Cela peut ne pas être un gros problème sur les systèmes mono-utilisateur, car le spouleur est redémarré automatiquement, mais est une source de problèmes sur les systèmes multi-utilisateurs comme les serveurs de terminaux et les serveurs d'impression. Ce qui arrive souvent est le suivant: un pilote d'imprimante défectueux plante le spouleur lors du traitement d'un travail d'impression. Le spouleur est redémarré et commence à reprendre là où il s'était arrêté. Le pilote défectueux exécute une seconde fois le travail d'impression et se bloque à nouveau.

Du point de vue d'un utilisateur, le sous-système d'impression n'est pas fiable. Le seul remède consiste à choisir les pilotes d'imprimante très, très soigneusement, en utilisant idéalement uniquement les pilotes de boîte de réception, c'est-à-dire les pilotes fournis avec le système d'exploitation. Mais ce n'est pas toujours pratique.

Améliorations apportées au spouleur dans Windows 7

La conséquence logique est d'isoler les pilotes d'imprimante les uns des autres et / ou du spouleur. Windows 7 et Server 2008 R2 y parviennent en exécutant le code du pilote d'imprimante pas de l'intérieur spoolsv.exe, mais à partir d'un processus dédié, PrintIsolationHost.exe. En cas de panne d'un pilote, une seule instance de PrintIsolationHost.exe disparaît, mais le service de spouleur lui-même n'est pas perturbé.

L'isolement du pilote d'imprimante est activé par défaut et peut être désactivé via le paramètre de stratégie de groupe suivant:

Configuration ordinateur / Modèles d'administration / Imprimantes / Exécuter des pilotes d'impression dans des processus isolés

Ce paramètre de stratégie détermine si le spouleur d'impression exécutera les pilotes d'impression dans un processus isolé ou séparé. Lorsque les pilotes d'impression sont chargés dans un processus isolé (ou des processus isolés), une défaillance du pilote d'impression n'entraînera pas l'échec du service du spouleur d'impression.

Si vous activez ou ne configurez pas ce paramètre de stratégie, le spouleur d'impression exécutera par défaut des pilotes d'impression dans un processus isolé.

Si vous désactivez ce paramètre de stratégie, le spouleur d'impression exécutera les pilotes d'impression dans le processus du spouleur d'impression.

Remarques:
– D'autres paramètres de stratégie de système ou de pilote peuvent modifier le processus d'exécution d'un pilote d'impression.
– Ce paramètre de stratégie s'applique uniquement aux pilotes d'impression chargés par le spouleur d'impression. Les pilotes d'impression chargés par les applications ne sont pas affectés.
– Ce paramètre de stratégie prend effet sans redémarrer le service du spouleur d'impression.

Paramètres de stratégie de groupe associés

Il existe une deuxième option de configuration liée à l'isolement du pilote d'imprimante: Configuration ordinateur / Modèles d'administration / Imprimantes / Remplacer le paramètre de compatibilité d'exécution du pilote d'impression signalé par le pilote d'impression.

Voici l'explication de l'éditeur de stratégie de groupe:

Ce paramètre de stratégie détermine si le spouleur d'impression remplacera la compatibilité d'isolation de pilote signalée par le pilote d'impression. Cela permet d'exécuter des pilotes d'impression dans un processus isolé, même si le pilote ne signale pas la compatibilité.

Si vous activez ce paramètre de stratégie, le spouleur d'impression ignorera la valeur d'indicateur de compatibilité de l'isolement du pilote signalée par le pilote d'impression.

Si vous désactivez ou ne configurez pas ce paramètre de stratégie, le spouleur d'impression utilisera la valeur d'indicateur de compatibilité d'isolation de pilote signalée par le pilote d'impression.

Remarques:
– D'autres paramètres de stratégie de système ou de pilote peuvent modifier le processus d'exécution d'un pilote d'impression.
– Ce paramètre de stratégie s'applique uniquement aux pilotes d'impression chargés par le spouleur d'impression. Les pilotes d'impression chargés par les applications ne sont pas affectés.
– Ce paramètre de stratégie prend effet sans redémarrer le service du spouleur d'impression.

Quand et comment l'isolement est-il activé?

La façon dont un conducteur est isolé dépend d'un certain nombre de facteurs. Tout d'abord, le fabricant du pilote doit l'avoir marqué comme compatible avec l'isolement dans le fichier INF. Soit cela, soit le paramètre de stratégie de groupe «Remplacer le paramètre de compatibilité d'exécution du pilote d'impression signalé par le pilote d'impression» est activé par l'administrateur. Si aucun des deux n'est vrai, un pilote est chargé dans le processus du spouleur comme avec les versions précédentes de Windows.

Remarque: tous les pilotes de boîte de réception livrés avec Windows 7 et Server 2008 R2 doivent prendre en charge l'isolation.

Tous les pilotes à isoler sont, par défaut, chargés en un seul processus. Ils fonctionnent en «mode partagé». À l'aide de la console de gestion de l'impression (PMC), cela peut être modifié en cliquant avec le bouton droit sur un pilote et en choisissant soit:

  • Aucun: le conducteur n'est pas isolé
  • Partagé: par défaut. Chargez le pilote dans un processus ensemble, tous les autres pilotes seront en mode d'isolement «partagé».
  • Isolé: chargez le pilote dans son propre processus. Recommandé pour les fauteurs de troubles.

Une analyse

L'isolement du pilote d'imprimante est une nouvelle fonctionnalité très intéressante qui promet d'augmenter la stabilité du sous-système d'impression, et avec elle la stabilité globale et perçue non seulement des serveurs d'impression, mais aussi des serveurs de terminaux et peut-être même des machines mono-utilisateur. Le prix à payer est raisonnablement bas: un peu plus de frais généraux car le nombre de processus nécessaires à l'impression est plus élevé qu'avec l'isolement désactivé. Dans l'ensemble, c'est une bonne chose que l'isolement soit disponible et activé par défaut, hélas pour la boîte de réception et les nouveaux pilotes marqués comme compatibles uniquement.

Les références

Divers

  • Microsoft a déposé un brevet sur l'isolement du pilote d'imprimante en 2003, qui a été publié il y a seulement quelques semaines.
  • De nombreuses sources, y compris les textes d'explication des paramètres de stratégie de groupe cités ci-dessus, utilisent le terme «pilote d'impression», qui me semble incorrect. Un pilote ne "pilote pas d'impression" mais "pilote une impression"euh". Donc, ce devrait être «pilote d'imprimante» à mon avis.
  • Si vous souhaitez vérifier si un pilote d'imprimante spécifique prend en charge l'isolation, recherchez la ligne «DriverIsolation = 2» dans le fichier INF.

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.