Adobe Reader druckt nicht „Das Dokument konnte nicht gedruckt werden“

Problem

rdsprinters02Der Adobe Reader XI druckt auf Terminal Servern keine PDF-Dateien mehr aus sondern vermeldet bockig „Das Dokument konnte nicht gedruckt werden“ und/oder „Es wurde keine Seiten zum Drucken ausgewählt„. Das Phänomen tritt unter Windows Server 2008/R2 und Server 2012/R2 auf, sowohl auf Terminalservern (RDS) als auch in einem „Admin Only“ Account. Grundsätzliche liegt das an gewissen Schwächen des Adobe Readers in Mehrbenutzerumgebungen, die sich öfters bei Treibern zeigen, deren Entwicklungszeil ebenfalls kein Mehrbenutzersystem war. Also praktisch alle Treiber außer „Universal“ Treibern.

Lösung

In den meisten Fällen hat es uns geholfen, die Druckertreiber auf dem Printserver im Isolierten Modus auszuführen, die Clientseitige Druckaufbereitung zu deaktivieren (was bei Terminalservern grundsätzlich der Fall sein sollte) und den Druckprozessor zurück auf den Standardmäßigen WINPRINT zu stellen.

Manchmal hilft es, nur die Verbindungsschlüssel für den Betroffenen Benutzer zurpückzusetzen. Das ist aber kein Allheilmittel.

reg delete "hkcu\printers\connections" /f

drucker-isoliert-und-winprintDruckertreiber im Isolierten Modus ausführen (für RDS sowiso empfohen)

  1. Druckverwaltung öffnen und mit dem jeweiligen Printserver verbinden
  2. Zu „Treiber“ wechseln, Drucker markieren
  3. Rechte Maustaste „Treiberisolation festlegen“ > „Isoliert“

Clientseitige Druckaufbereitung deaktivieren

 

  1. Druckverwaltung öffne, zu „Drucker“ wechseln
  2. Eigenschaften des Druckers, Tab „Freigabe“
  3. „Druckauftragsaufbereitung auf Clientcomputern durchführen“ deaktivieren
  4. Bei allen betroffenen Druckern wiederholen

Druckprozessor auf WINPRINT zurücksetzen

  1. Auf dem betroffenen Druckserver die  Drucker auf den WinPrint Prozessor zurücksetzen. Dafür ALS ADMIN an der Powershell ausführen:
    set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Print\Printers\*' -name 'Print Processor' -value WinPrint
  2. Auf dem betroffenen Druckserver die  TREIBER auf den WinPrint Prozessor zurücksetzen. Dafür ALS ADMIN an der Powershell ausführen:

    32bit (x86)

    set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Drivers\Version-3\*' -name 'Print Processor' -value WinPrint

    64bit

    set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Drivers\Version-3\*' -name 'Monitor' -value $null

Ein risige Dankeschön an „aardum“ für seinen Ausführlichen Artikel in seinem Blog. Der Mann weiss wovon er spricht, bei interesse ist ein Blick in seinen Bericht empfehlenswert.

Terminal Server Windows-Update benachrichtigung entfernen

Problem

windows-update-benachrichtigungBenutzer erhalten auf Windows 2008/2008R2/2012/2012R2 Terminalservern (RDS) die Benachrichtigung das neue Updates zur Verfügung stehen. Je nach Konfiguration nervt das gelbe Popup die Benutzer auch gerne.

Lösung

Die Benachrichtigung lässt sich per Gruppenrichtlinie (GPO) entfernen:

Benutzerkonfiguration > Richtlinien > Administrative Vorlagen > Windows-Komponenten > Windows Update > „Zugriff auf alle Windows Update-Funktionen entfernen“

Den Eintrag auf „0 – Keine Benachrichtigungen anzeigen“ setzen.

HP Networking Utility (und ähnliches) entfernen

Problem

Nach einer De-Installation des HP PSP (Service Pack for Proliant) verbleiben noch Tools wie das HP Networking Utility, der Headless Registry Updater und Reste verschiedener Agenten auf dem System. Es gibt keinen Uninstaller dafür und die manuelle Entfernung dauert zu lange.

Lösung

hpps-cleaner

Es gibt einen HP PSP Cleaner. Aufrufen, starten, sauber booten fertig. Grade nach P2V-Aktionen hilft das sehr gut weiter. Der Cleaner wurde gebaut von ctxadmtools, ist aber (wie immer) hinter einer login-email-registrierungs-wal versteckt. Zum Glück gibt es einen lokalen mirror (nur für admins). Download HP Service Pack for Prolian Cleaner (mirror).

Beliebige Programme als Windows Dienst („Windows Service“) laufen lassen

Problem

Ein Programm bring einen Prozess mit, der immer laufen muss, wie ein Dienst. Leider hat der Programmierer die Dokumentation zu Windows-Services nicht gelesen (oder verstanden) und hat eine Desktop-Applikation gebaut. Jetzt muss der Server-Desktop immer angemeldet sein, damit der „Dienst“ läuft.

Das kommt (leider immer noch) in verschiedenen Fällen vor. Es gibt tatsächlich auch heute noch Unternehmen die glauben „einen viel besseren Webserver“ schreiben zu können oder eine Philosophie vertreten wie „Einen Webserver brauchen brauchen wir nicht, das kann die Software von selber“. Dieser technisch höchstkompetenten Ansage kann man als Admin weder mit Fakten noch Argumenten beikommen, für einige Programmierer existiert nur der Desktop und nichts weiter.

Lösung

NSSM_install_application

Admins to the rescue. Neben SRVANY, ServiceDemon und ähnlichen dreiviertelguten Ideen gibt es den NSSM – den „Non Sucking Service Manager“. Als eins der vermutlich besten Programme der aktuellen Windows-Admin Toolwelt kann der NSSM praktisch beliebige Programme als Dienst starten.

Das klappt ausgezeichnet mit Konsolenfenstern, Windows-Applikationen, Batchdateien, Datenbanken, Telekom-Telefonbüchern, Webbrowsern … praktisch allem. Das Tool kann auf einfachste Art dem Programm geben was es braucht (Logon-ID, Desktopsession, Pfade …) und stellt die Zwischenschischt zum Servicemanager dar. sogar Benutzerdefinierte Beendigungs-Parameter sind möglich, wie CTRL+C oder ALT+F4, bis hin zum einfachen Prozess beenden.