Open navigation

Mehrfache Drucker

Problem

In einer Terminalserverumgebung mit 2012R2 und 2016 unter Verwendung von ThinPrint mit Druckerfreigaben treten eine Reihe von Problemen auf, die höchstwahrscheinlich mit demselben Problem verbunden sind. Diese haben alle gemeinsam, dass es inkonsistente Druckerobjekte in "Geräte und Drucker", "Drucker" und API-"EnumPrinters" angezeigt werden.

Drucker werden auch als ...

  • "nicht verfügbar" im ThinPrint Self Service
  • mehrere Drucker mit demselben Namen (Netzwerkdruckerfreigaben sowie lokale Drucker)
  •  Standarddrucker kann nicht festgelegt werden (jeder Fehler)
  •  Standarddrucker wird angezeigt, existiert aber nicht wirklich, wenn Sie ihn aus der Anwendung beim Drucken auswählen möchten
  • Drucker können nicht aus der alten Druckeransicht, sondern nur aus "Geräte & Drucker" gelöscht werden
  • Drucker werden in "Geräte & Drucker" als "unbekanntes Gerät" angezeigt. 

Ursache

Dieses Phänomen ist als "Ghostprinter" bekannt. Das Problem wird durch Windows-bezogene Prozesse verursacht. Unsere Annahme ist, dass der Druckwarteschlangendienst nicht korrekt funktioniert, und das wurde auch in unseren Tests bestätigt. Dies ist ein großes Problem für uns, weil wir uns auf die Windows-API (Anwendungsprogrammierschnittstelle) verlassen und uns auf die gegebenen Daten verlassen, die leider inkorrekt sind. Wenn wir also über die API nach einer Liste der verbundenen Druckerfreigaben fragen, könnte sie nur einige davon zurückgeben und unnötige Druckererstellungsversuche verursachen. 

Betrifft das Produkt

ThinPrint Engine 10+ on Win2012+ 

Lösung

  1. Installieren Sie die neuesten MS Windows-Updates auf den Servern.
  2. Aktualisieren Sie auf die neueste ThinPrint-Version (Apps und Funktionen zeigt ThinPrint Engine Version 11.2.593 oder höher).

  3. Gehen Sie den Bereinigungsprozess durch, um betroffene Drucker zu entfernen (siehe unten).

 

Bereinigung

Dies umfasst auch eine Windows-bezogene Richtlinie und eine Registry-Einstellung, von der bekannt ist, dass sie das Verhalten beeinflusst.

Vorsicht: Bevor Sie etwas in der Microsoft Windows-Registry bearbeiten oder ändern, wird empfohlen, dass Sie eine Sicherung der Registry erstellen.

1. On the Terminal Servers set the computer policy "Always render print jobs on the server" to -enabled-

Policy Path: Computer Configuration -> Policies -> Administrative Templates -> Printers

 

2. Create the registry value "RemovePrintersAtLogoff" (DWORD) and set it to "0".
Registry Path: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider]

Create value via Powershell

$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider"
New-ItemProperty -path $RegPath -name "RemovePrintersAtLogoff" -PropertyType DWORD -Value 0 -force | Out-Null

 

3. Delete all Client-Side-Rendering (CSR) sub keys on the Terminal Servers under:
Registry Path: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider]

Delete Content via Powershell

$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider"
(Get-ChildItem $RegPath).PsPath | Remove-Item -Recurse

 

4. Create the registry value "EnumprintersMode" (DWORD) and set it to "1".
Registry Path: [HKEY_LOCAL_MACHINE\SOFTWARE\ThinPrint\TPAutoConnect]

Create value via Powershell

$RegPath = "HKLM:\SOFTWARE\ThinPrint\TPAutoConnect"
New-ItemProperty -path $RegPath -name "EnumprintersMode" -PropertyType DWORD -Value 1 -force | Out-Null

 

5. Restart the server.

War diese Antwort hilfreich? Ja Nein

Feedback senden
Leider konnten wir nicht helfen. Helfen Sie uns mit Ihrem Feedback, diesen Artikel zu verbessern.