Windows PrinterEs gibt immer wieder Dinge die mich faszinieren. Dazu gehören vor allem ganz banale Sachen, die man über die Jahre als total simpel und selbstverständlich zu nutzen gelernt hat – wie z.B. Drucker für Anwender über einen Print-Server bereitzustellen. Was im Jahr 2015 ein funktionierender Standard sein müsste kann sich aber unter Windows 2012 R2 als Weg durch die Hölle offenbaren.

Szenario: Windows 2012 R2 RDSH mit Print-Servern der selben OS-Version, natürlich fully patched. Egal ob Drucker per GPO, manuell oder per „net use“ verbunden bringt erstaunliche Verhaltensweisen zu Tage. Angefangen hat es mit User1, der plötzlich seinen manuell verbundenen Drucker nicht mehr als eben jener, sondern als „Gerät“ nach seiner morgendlichen Anmeldung vorfand. Na gut, kann passieren. Neu verbunden alles gut. Dem Phänomen der nicht sichtbaren grünen Häkchen bei den gesetzten Standarddruckern wurde von meinem Admin-Team bis dato keine große Beachtung geschenkt. Ein Versäumnis mit Folgen…

Die Druckeranbindung wurde über Wochen immer abenteuerlicher: Netzwerkdrucker waren aus einer Session nicht nachvollziehbar plötzlich für alle Benutzer verfügbar und konnten nur mit Adminrechten wieder gelöscht werden – für wenige Sekunden; aus nicht-Microsoft-Anwendungen konnte eine Ausgabe zum Teil nicht mehr per Schnelldruck erfolgen; GPO gesteuerte Drucker wurden mehrfach angezeigt. Ein Call bei Microsoft führte wie so oft zu keiner zufriedenstellenden Lösung.

Seit einigen Tagen haben wir ein Script vor den täglichen Reboots der RDSH’s implementiert. Innerhalb der HKLM-Registry werden nach User-GID aufgeschlüsselt die verbundenen Drucker gespeichert. Diese Einträge werden bei Anmeldung erstellt falls sie nicht vorhanden sind und können daher gefahrlos gelöscht werden.

net stop spooler
for /f "tokens=*" %%d in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider" ^| findstr /i " S-1-5-21- servers"') do reg delete "%%d" /f
net start spooler

Mit diesem Workaround konnten bisher die Sessions wieder fehlerfrei mit Druckern versorgt werden. Vor Einsatz dieses Dreizeilers sollten selbstverständliche Faktoren wie z.B. Treiberaktualisierungen etc. durchgeführt werden.

6 Reaktionen auf Windows 2012 R2 RDSH & Print-Server
  1. Hope you can answer in English, maybe you can help me out

    I have a network printer installed on my PC and I use my PC to connect to a Remote desktop server
    In the remote session the local printer would appear and i could print perfectly

    It worked properly until that script started running

    Now, in that remote session, the printer is there but when i print it doesn’t send the print job to the local printer.

    Even when I login/logout it doesn’t work, it „creates“ the printer but it doesn’t print

    Are you aware of this issue?
    Can the script ignore Terminal Services Easy Print printers?

    • Daniel Kaeppeler 8. Juli 2017 um 21:19 Antworten

      Hi Alvaro,

      all entries which get deleted by this script are recreated once a user logs on to a RDSH. So I cannot comprehend why this issue occurs to you. We have also several clients which redirect their local printers without any problems.
      Do you reboot the RDSHs after running the script?

      Regards,
      Daniel Kaeppeler

      • Thanks for the answer
        I only logged off/on the session. The Host can’t be rebooted since many people are logged in at the same time.

        Meanwhile I logged in again and everything was working properly, back to normal!

        I have no idea what happened

  2. Hallo,

    wir haben derzeit auch dieses Problem. Wir arbeiten mit keiner automatischen Druckerzuweisung wie GPO oder Scripten, die Mitarbeiter haben sich ihre Drucker alle selber über den UNC Pfad des freigegebenen Printservers gemappt.

    Wenn dieses Script auf den RDP-Server nun ausgeführt wird, heißt das doch, dass die Drucker dementsprechend komplett aus dem User-Profil gelöscht werden?
    Was bei einer automatischen Zuweisung ja kein Problem wäre, da sie bei der Anmeldung wieder zugewiesen werden, ist das richtig so?

    Und anschließend lasst ihr die Server neu durchstarten?

    Viele Grüße
    Rainer

    • Hallo Rainer,

      das Script greift nicht in die Profile der User ein, sondern nur in den „Zwischenspeicher“ des Spoolers. Dadurch werden auch keine zugewiesenen Drucker entfernt, sondern lediglich der Spooler auf dem RDSH wird gesäubert. Unsere Anwender holen sich Ihre Drucker aus dem AD auch selbst, wir haben keine automatische Zuweisung, per GPO haben wir nur einzelne Drucker testweise für diesen Problemfall zuweisen lassen.
      Wir lassen das Script jede Nacht auf allen RDSH’s ausführen und machen danach unseren nächtlichen Reboot.

      Wie immer gilt: vor Implementierung auf einem Produktivsystem vorab in einer Abnahmeumgebung testen!

      Viel Erfolg!

      • Hallo Daniel,

        Vielen Dank für das schnelle Feedback. Ich werde das jetzt anhand einer Testmaschine probieren.
        Bin sehr gespannt, ob sich damit endlich die Probleme lösen lassen.

        Ich werde berichten.

        Viele Grüße
        Rainer


[top]

Einen Kommentar zu Daniel Kaeppeler erstellen Kommentar verwerfen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie mehr darüber, wie Ihre Kommentardaten verarbeitet werden .