Quantcast
Channel: Windows Server Forum
Viewing all articles
Browse latest Browse all 2531

Netzwerkdrucker in Terminalserver Sitzung nicht sichtbar - Windows Server 2008 R2 x64

$
0
0

Guten Tag Technet Community,

da ich nach vielen Stunden Analyse die Ursache einer Druckerstörung noch nicht gefunden habe, hoffe ich hier Unterstützung, Ideen und Ratschläge zu finden.


Hintergrundinformationen zu der Umgebung:

Server: 5 Terminalserver, 1 Printserver

OS: Alle Server laufen mit Windows Server 2008 R2 x64

Citrix Version: Citrix XenApp 6.5 mit Rollup Pack 6

Druckermapping via Powershell Script / Com Objekt - Auszug der Mapping Methode:

$coPrinterConnection = New-Object -Com WScript.Network
$coPrinterConnection.AddWindowsPrinterConnection("\\IPDESPRINTSERVERS\DRUCKERNAME")


Die Störung zeigt sich wie folgt:

1. Die Netzwerkdrucker sind sporadisch nicht bzw. nur teilweise in der Terminalserver Sitzung der User sichbar

=> Nicht sichbar in der Windows Geräte & Druckerliste

=> Nicht sichbar im Print Dialog in den Anwendungen


2. Zu dem Zeitpunkt der Anmeldung sind jedoch die in einer vorherigen Sitzung gemappten Printer Connection Einträge bereits in der Registry des Users vorhanden

HKEY_USERS\S-IDDESUSERS\Printers\Connections


3. In der gestörten Sitzung können die betroffenen (nicht angezeigten) Drucker ebenfalls nicht (mit dem identischen UNC Pfad) manuell verbunden werden. Hierbei habe ich vier verschiedene Wege versucht

3.1 In der Powershell via Com Objekt wie im Printer Mapping Script

$coPrinterConnection = New-Object -Com WScript.Network
$coPrinterConnection.AddWindowsPrinterConnection("\\IPDESPRINTSERVERS\DRUCKERNAME")

Fehlermeldungen:

No Printers were found
Incorrect Environment (Tritt auf, wenn vorher der Connection Key des Druckers aus der Registry manuell gelöscht wurde)

3.2 In der Powershell via WMI

$wmiPrintClass = [WMICLASS]"Win32_Printer"
$wmiPrintClass.AddPrinterConnection("\\IPDESPRINTSERVERS\DRUCKERNAME")

Fehlercodes:

3012 - ERROR_PRINTER_NOT_FOUND - No printers were found

10 - ERROR_BAD_ENVIRONMENT - The environment is incorrect (Tritt auf, wenn vorher der Connection Key des Druckers aus der Registry manuell gelöscht wurde)

Quelle: https://docs.microsoft.com/de-de/windows/desktop/Debug/system-error-codes--0-499-

3.3 Via Rechtsklick->Connect auf das Druckerobjekt im Printserver Share

Fehlermeldung:

No Printers were found

3.4 Via Rundll / printui.dll (Selbe Funktion wie 3. nur via Console)

rundll32 printui.dll PrintUIEntry /in /n\\IPDESPRINTSERVERS\DRUCKERNAME

Fehlermeldung:

No Printers were found


4. In der gestörten Sitzung können die betroffenen (nicht angezeigten) Druckerobjekte jedoch mit einem abgewandelten UNC Pfad verbunden werden

\\IP_DESP_RINTSERVERS\DRUCKERNAME => nicht möglich

\\FQDN_DES_PRINTSERVERS\DRUCKERNAME => Erfolgreich

Ich habe bereits eine Änderung des Printserver UNC Pfad im Mapping Script von ursprünglich Hostname zu FQDN zu mittlerweile IP durchgeführt, dies führte jedoch wieder zur selben Störung. Wenn die Connection Strings unter  "HKEY_USERS\SID_DES_USERS\Printers\Connections" zum Beispiel mit Hostname hinterlegt sind, lassen sich in der Sitzung die Drucker mit FQDN bzw. IP des Printservers verbinden. Wenn in der Registry der String mit FQDN hinterlegt ist, lässt sich der Drucker via UNC Pfad mit Hostname und IP zum Printserver verbinden.


5. Drucker erscheinen in der Sitzung nach Neustart des Print Spooler Dienst auf dem jeweiligen Terminalserver

Wenn während einer angemeldeten User Sitzung (Wenn die Drucker nicht angezeigt werden bzw. sich diese ebenfalls nicht nachträglich wie oben beschrieben verbinden lassen), der Print Spooler Dienst auf dem Terminalserver neugestartet wird, erscheinen plötzlich alle Netzwerkdrucker (Alle Drucker, für die zu diesem Zeitpunkt ein Eintrag unter "HKEY_USERS\SID_DES_USERS\Printers\Connections" vorhanden ist). Der Print Spooler Dienst ist zu keinem Zeitpunkt gestoppt, und es gibt keine Crash Events zu diesem. Die Drucker sind dann sporadisch in der Windows Geräte & Druckerliste sichtbar, im File Print Dialog aus einer Anwendung sind diese anschließend immer sichtbar.


6. Bereits durchgeführte maßnahmen bei der Entstörung:

6.1 Zurücksetzung (Umbenennung & somit neu Erstellung) der User Terminalserver Profile

6.2 Druckertreiber vollständig gelöscht und neu installiert

Treiber gelöscht in der Print Management Console, im Driver Store(https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/pnputil-command-syntax) und zusätzlich wurde eine manuelle Bereingung in der Registry durchgeführt

Unter "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Print Processors" alle Treiberspezifischen Keys entfernt

Unter "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Drivers\Version-3" alle Treiberspezifischen Keys entfernt

Anschließend wurden die Server neu gestartet, die Treiber von der Herstellerseite erneut runtergeladen und manuell via Print Management installiert.

6.3 Wechsel des Druckertreiber von ursprünglich einem Universal Print Driver in spezifische (Serien) Druckertreiber

6.4 Wechsel des Druckertreiber in eine neuere Version des Universal Print Driver

6.5 Installation der aktuellen Windows Server 2008 R2 Patches

6.6 Installation des Rollup Pack 6(vorletzte verfügbare Version) für Citrix XenApp 6.5 auf den Terminalservern

Fixes in dem Rollup

Printing

  1. Users cannot print with a Diebold printer (Model P361) when logged on with Receiver.

    [From XA650W2K8R2X64R06][#LC2908]

  2. This enhancement creates one auto restored printer per port number when users log on.

    [From XA650W2K8R2X64R06][#LC2943]

  3. When users log on to a new session, the printer list does not appear. The printer list does appear when users reconnect to a disconnected session.

    [From XA650W2K8R2X64R06][#LC1226]

  4. Attempts to restart the Print Manager Service by using the Services snap-in fail. The error message "Couldn't stop this service" appears and the status of the Print Manager Service shows "stopping."

    [From XA650W2K8R2X64R06][#LC2122]

  5. The Citrix Printer Manager Service (Cpsvc.exe) quits unexpectedly with an access violation error.

    [From XA650W2K8R2X64R06][#LC2624]

Quelle: https://support.citrix.com/article/CTX142033#new

6.7 Umbenennung des Client Side Rendering Key in der Registry

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider"

6.8 Druckerobjekte auf dem Printserver neu angelegt ( bei jedem Treiberwechsel in 6.3 und 6.4)

6.9 Bereinigung des Spool Verzeichnis und Neustart des Spooler Dienst

C:\Windows\System32\spool\PRINTERS

6.10 Prüfung der Eventlogs auf Software Restriction Einträge

6.11 Prüfung der Firewall auf Blockierungen und Freischaltung der von den Druckern genutzen Ports

6.12 Prüfung der Print Eventlogs inklusive Aktivierung der Debugging Logs

6.13 Anpassung der PrintIsolation nach vorgaben des Herstellers auf "Shared", ebenfalls "Isolated" wurde getestet

6.14 Analyse des Print Spooler Prozess (spoolsv.exe) mit ProcMon ...

Da die Drucker in der Sitzung erscheinen, wenn der Spooler Dienst auf dem Terminalserver neu gestartet wird, vermute ich eine Störung an diesem. Der Dienst stürzt jedoch nicht ab und befindet sich immer im Status "running". 

Hat jemand eine Idee, was die Ursache der Störung sein könnte?

LG


Viewing all articles
Browse latest Browse all 2531


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>