Freigeben über


[PRINT] Vereinheitlichen der UNIDRV / Core Treiber Versionen auf x86 und x64 Druckumgebung - Windows 2008 R2 Druckserver und Windows 7 / Vista / XP Clients

Hintergrund: Öfters ist zu sehen dass die Core Treiber Versionen, wie z.B. UNIDRV.DLL sich zwischen Betriebssystemen unterscheiden.
Am meisten zwischen den x86 und x64 Umgebungen.

Ziel: Heute möchte ich ein paar Tipps geben, wie man die Core Treiber Version in der Druckumgebung vereinheitlichen kann, so dass 32bit und 64bit Maschinen die gleiche Version haben.

Der UNIDRV steht als Basis für die PCL Drucker welche auf einem Windows Betriebsystem installiert werden und ist Teil der Core Treiber zusammen mit PSCRIPT, PCLXL und XPSDRV.

Jeder Druckadmin kann sich selbstverständlich an das Problem erinnern wie man x86 Treiber auf einen 64bit Druckserver "installiert" und dem Fenster wo der NTPRINT.INF immer wieder dafür verlangt wird: https://blogs.technet.com/b/core/archive/2012/06/05/print-installation-von-x86-druckertreiber-auf-64-bit-betriebssysteme.aspx

NTPRINT.INF ist unter anderen dafür verantwortlich diese Core Treiber abhängend von der Architektur auf dem nötigen OS zu installieren, damit die danach installierten Druckerqueues diese Core Treiber nutzen können.

Frage: Was passiert im Hintergrund wenn eine freigegebene Druckerqueue auf einem Client hinzugefügt wird?

Antwort: Kurzgefasst, will ein Client eine Druckerqueue vom Druckserver hinzufügen, wird zuerst die Version der Core Treiber auf diesem überprüft.
Sind die Core Treiber auf dem Client älter als auf dem Druckserver, so werden diese auf dem Client runtergeladen und installiert.

Sind diese auf dem Client aber neuer als die Core Treiber auf dem Druckserver, dann behält der Client seine eigenen Core Treiber und installiert nur den Druckertreiber und die Queue.

Da wir von x86 und x64 Druckertreibern reden und 32bit und 64bit Betriebssystemen, kann es vorkommen dass die Core Treiber Version zwischen den 2 Architekturen unterschiedlich ist.

Als Admin kann man sich dann fragen: "Würde es Sinn machen die Core Treiber auf dem gleichen Stand aktualisiert zu haben? So dass die x86 und x64 Umgebungen auf dem gleichen Stand sind?"

Theoretisch ist die Erscheinung von Druckproblemen wegen der unterschiedlichen Versionen der Core Treiber gering, da die Core Treiber "backwards-compatible" sind.
Wir empfehlen aber, wo möglich, versuchen die Core Treiber Version auf dem gleichen Stand zwischen x86 und x64 zu halten.

Daher werde ich als Tipp heute erklären wie man solch ein Verheinheitlichen der Core Treiber auf Windows 2008 R2 verwalten kann.

1. Zuerst muss man sich die Core Treiber von der Microsoft Seite suchen und bzw. herunterladen.
Zu dem heutigen Datum, 10.08.2012, enthält folgender Hotfix die aktuelsten Versionen der Core Treiber, welche ich finden konnte für Windows 7 / Windows 2008 R2: https://support.microsoft.com/kb/2701894
Bitte immer überprüfen ob nicht neuere Versionen erschienen sind !

2. Die Core Treiber vom Hotfix müssen auf dem Windows 2008 R2 installiert werden damit die x64 Treiberumgebung auf dem Druckserver aktualisiert wird.
3. Danach müssen die Core Treiber vom Hotfix auf nur einem Windows 7 32bit installiert werden, damit die x86 Treiberumgebung auf dem Druckserver aktualisiert wird.

Als Beispiel hier für dieses Hotfix wird die UNIDRV auf 32bit und 64bit OS auf 6.1.7601 .21980 aktualisiert.

3. Als Admin muss man sich jetzt vom Windows 7 32bit Client durch PMC (Print Management Console) remote auf dem Windows 2008 R2 verbinden und einen x86 PCL Druckertreiber auf dem Druckserver installieren, so wie auch hier von mir beschrieben:
https://blogs.technet.com/b/core/archive/2012/06/05/print-installation-von-x86-druckertreiber-auf-64-bit-betriebssysteme.aspx

> Durch die Installation des x86 Treiber wird auch der nötige ntprint.inf mit den aktualisierten Core Treibern für die x86 Umgebung auf dem Druckserver kopiert.

Allerdings achtung!

Obwohl die Core Treiber den neuesten Stand haben werden, wird der PMC unter "Driver Version" nicht die aktuelle Version zeigen, sondern die Driver Version mit dem dieser Druckertreiber ursprünglich installiert wurde.

Hier ein Beispiel mit einem Windows Inbox Treiber:

Dieser Druckertreiber Brother DCP-116C liegt im Driver Store hier:

C:\Windows\System32\DriverStore\FileRepository\prnbr009.inf_amd64_neutral_fd2ac5b9c40bd465

 

Wenn man die Treiber INF öffnet, findet man auch die Treiberversion welche PMC anzeigt:

Mann muss im \3 Verzeichnis beziehungsweise im DriverStore unter ntprint.inf nach den aktuell auf dem System installierten und benutzten Core Treibern suchen.

4. Verbinden 32bit und 64bit Clients jetzt eine neue Druckerqueue mit einem neuen Druckertreiber, dann werden die Core Treiber auf diesen aktualisiert.

5. Das Beste daran ist dass, weil die Core Treiber "backwards compatible" sind, werden die Vista / XP Clients in der Umgebung so wie bei Punkt 4 die Core Treiber mit der Version vom Druckserver lokal auch aktualisieren und so wird die Core Treiber Version auf allen Maschinen den gleichen Stand haben.

Ich hoffe dass die Tipps hilfreich sind!

Support Engineer - Platforms Core Team
Cezar Poenaru

--- Disclaimer ---/
This posting is provided "AS IS" with no warranties, and confers no rights.

The entire risk arising out of the use or performance of the sample scripts and
documentation remains with you. In no event shall Microsoft, its authors, or
anyone else involved in the creation, production, or delivery of the scripts be
liable for any damages whatsoever (including, without limitation, damages for
loss of business profits, business interruption, loss of business information,
or other pecuniary loss) arising out of the use of or inability to use the
sample scripts or documentation, even if Microsoft has been advised of the
possibility of such damages.
--- Disclaimer ---\