Serveur d'impression

Protocole d'impression Internet (IPP), Windows hérité et Windows Server 64 bits – si blog (ms) ++; – Serveur d’impression

Le 17 juin 2019 - 7 minutes de lecture

Le service de rôle Impression Internet dans Windows Server 2008R2 relève du rôle Services d'impression et de documentation et requiert le service IIS (avec ASP) pour fonctionner.

Ce qu'il fournit est une méthode pour installer des "connexions d'imprimante Web" sur des ordinateurs clients via HTTP, y compris le montage du pilote d'imprimante et son téléchargement à partir du serveur Web.

Référence:
http://msdn.microsoft.com/en-us/library/ms817904.aspx

Le principe de base est que la machine cliente utilise un navigateur Web pour demander une page ASP sur le serveur Web, ce qui rend une page HTML basée sur des imprimantes installées et partagées disponibles pour la connexion.

La liste des imprimantes est affichée avec les champs: Nom, Statut, Emplacement, Travaux, Modèle et Commentaire.

Le nom de chaque imprimante est un lien hypertexte qui ouvre une vue détaillée de cette imprimante spécifique, y compris un résumé de ses travaux d'impression et une liste d'actions pour l'imprimante ou le document sélectionné.

Sous "Actions de l'imprimante" se trouve l'hyperlien "Connecter" qui décrit l'installation de la connexion d'imprimante Web. C'est ici que commence notre récit édifiant.

En cliquant sur le lien, le client et le serveur communiquent et les actions suivantes ont lieu:
Si le client a un pilote intégré pour ce modèle …
– Il est installé à partir du magasin de pilotes local sur le client, aucun téléchargement n'est requis.

Si le client ne dispose pas d'un pilote intégré pour ce modèle …
– Si le serveur a déjà créé un paquet webpnp pour cette imprimante, celui-ci est construit maintenant.
– Il est demandé sous forme de téléchargement HTTP normal par le client
– Le pilote d'imprimante est installé

Finalement…
– Le client recherche un port d'imprimante avec l'URL de cette imprimante spécifique.

Dans le cas de pilotes fournis, le serveur n’a pas besoin de disposer du package dans l’architecture de la machine cliente.
c'est à dire.
Un client Windows 7 x86 peut installer une connexion d'imprimante Web à partir d'un serveur Windows Server 2008R2 pour tout pilote intégré, car ils possèdent le même magasin de pilotes.

Dans le cas de packages de pilotes OEM, le package doit être fourni à la demande par le serveur. Il est donc nécessaire que la version d'architecture cliente du package de pilotes soit transmise à la machine cliente.

C’est là qu’une petite différence entre selon la version du client Windows …

Pour Vista et les versions ultérieures, le package de pilote d’imprimante pré-compilé peut être donné directement au client et installé – ceci s’applique aux clients x86 et x64.

Pour les versions de Windows antérieures à Vista, le serveur analyse le fichier .INF afin de générer un package de pilotes compatible (non signé) que le client peut télécharger et installer.

Dans un cas récent, l'installation d'un pilote d'imprimante OEM via IPP fonctionnait bien pour les clients Windows 7, mais en échec pour les clients XP, qui ont immédiatement reçu "Echec de l'installation de l'imprimante"avec le message crypté"Code d'erreur = E0000102".

Comme un générique erreur ce code se traduit par WAIT_TIMEOUT (en fait, il ne s’agit que du dernier bit 0x102) – ce qui n’a aucun sens car l’erreur est renvoyée instantanément.

En utilisant Moniteur de processus Pour essayer de trouver des indices sur le serveur, en comparant le scénario de travail (client Windows 7 x86) avec le client défaillant (client XP x86), rien ne s'est immédiatement révélé comme faux avec un registre ou un fichier d'E / S.

J'ai donc pris une trace de voyage dans le temps (TTT, également appelé iDNA) du processus de travail IIS (w3wp.exe) pendant le traitement de la demande du client.

À l’aide de symboles de débogage privés, j’ai constaté que le fichier .INF correct a été ouvert avec succès (le dossier sous C: Windows System32 DriverStore FileRepository contenue "_x86_neutral"), mais au moment de l’analyse, cette erreur était renvoyée.

L’erreur provient en fait de SETUPAPI et se traduit par ERROR_LINE_NOT_FOUND.

Ce que j’ai découvert, c’est que le programme d’installation cherchait d’abord une section intitulée "SourceDisksNames.amd64"et ne le trouvant pas (comme prévu, il s’agit bien d’un fichier .INF x86), mais échoue également à en localiser un nommé"SourceDisksNames".
En fait, il essaie 5 fois de trouver l’une ou l’autre de ces sections, obtenant toujours 0xE0000102.

En regardant le fichier .INF manuellement, il était en effet correct – il y avait seulement la section nommée "SourceDisksNames.x86"là – alors pourquoi ne cherchons-nous pas cela?

SETUPAPI utilisera l’architecture du machine locale, et comme ce code est en cours d’exécution sur W2K8R2, ceci recherchera d’abord la section 64 bits.
(De même, si le client était en 64 bits et le serveur en 32 bits, le même problème se présenterait.)

Référence:
http://msdn.microsoft.com/en-us/library/ff547478(VS.85).aspx

Pour contourner ce problème, j’ai édité le fichier .INF avant d’installer le package sur le serveur, puis renommé "SourceDisksNames.x86" à "SourceDisksNames".

L'installation suivante de la connexion d'imprimante Web à partir d'un client XP a immédiatement fonctionné.

REMARQUE:
Si vous rencontrez des problèmes pour installer une connexion d’imprimante Web sur Windows Vista et des clients ultérieurs, vous voudrez peut-être vérifier ceci …

Windows Vista a introduit la fonctionnalité de sécurité "Mode protégé", qu'Internet Explorer peut utiliser pour exploiter les zones de sécurité Internet, dans lesquelles une ressource est étiquetée avec son origine.

Vous avez probablement vu la boîte d’avertissement apparaître lors du lancement d’un fichier .EXE téléchargé via IE – le texte vous indique le fichier "provenant d’Internet" et vous offre la possibilité de le débloquer de manière permanente.

Référence:
http://msdn.microsoft.com/en-us/library/bb250462(v=vs.85).aspx

Étant donné que l'installation d'un pilote est définitivement quelque chose que vous ne voudriez faire que d'une source de confiance, et que le mode protégé est activé pour la zone Internet (par défaut), l'hôte (serveur IPP) doit se trouver dans l'une des zones de sécurité les plus fiables: Sites intranet ou de confiance.
(L'autre option consiste à désactiver temporairement le mode protégé pour la zone Internet, mais je ne le recommande pas.)

De plus, si vous utilisez l'authentification sur le serveur IIS, demandez à l'utilisateur de cocher la case "Mémoriser mon mot de passe" lors de sa première connexion pour voir si cela aide.

Commentaires

Laisser un commentaire

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