Drucker am Windows - Client

Autor des Abschnitts: @cweikl, @rettich

Nachdem die Drucker auf dem Server eingerichtet wurden, sind diese auf Windows-Clients nun als Freigaben sichtbar.

Windows: Printer-Share

Die Treiber sind nun über die Microsoft Management Console (MMC) hinzuzufügen.

Dem global-admin die nötigen Rechte einräumen

Bevor es losgehen kann, müssen wir dem global-admin noch die nötigen Rechte auf dem Server einräumen. Melde Dich dazu als root auf dem Server an und führen Sie die folgenden Befehle aus:

net rpc rights grant "LINUXMUSTER\Domain Admins" SePrintOperatorPrivilege -U "LINUXMUSTER\global-admin"
chgrp -R "LINUXMUSTER\Domain Admins" /var/lib/samba/printers/
chmod -R 2775 /var/lib/samba/printers/

Dem Server vertrauen

Seit Juli 2016 hat Windows10 ein neues Sicherheitsfeature. Es muss über GPOs festgelegt werden, dass die Windows-Clients unserem Server vertrauen. Dazu gehen wir wie folgt vor:

Melde Dich als global-admin am Windows-Client an und starte die Gruppenrichtlinienverwaltung (Wie Du sie installierts kannst Du hier nachlesen). Navigiere zur Default Domain Policy von linuxmuster.lan.

Default-Domain-Policy

Wähle mit einem Rechtsklick Bearbeiten. Es öffnet sich der Gruppenrichtlinien-Editor. Navigiere zu Computerkonfiguration Richtlinien Administrative Vorlagen Drucker.

RSAT-Printer

Doppelkilicke auf Point and Print Einschränkungen, aktiviere die Richtlinie und setzen folgende Einstellungen:

Point and Print Einschränkungen

Setze einen Haken bei Benutzer können Point and Print für Pakete Genehmigte Server verwenden. Gib die FQDN des Servers bei Vollqualifizierte Servernamen ein und wähle bei Beim Installieren von Treibern für eine neue Verbindung und bei Beim Aktualisieren von Treibern für eine vorhandene Verbindung die Einstellung Warnung oder Anhebungsaufforderung nicht anzeigen.

Bestätige mit OK.

Doppelklicke auf Point and Print für Pakete Genehmigte Server und aktiviere die Richtlinie.

Print and Point gen. Server

Aktiviere die Richtlinie, klicken auf Anzeigen… und gib den FQDN des Servers ein.

Bestätige zwei mal mit OK.

Schließe den Gruppenrichtlinien-Editor und die Gruppenrichtlinien-Verwaltung

Starte den Rechner neu.

Druckertreiber auf dem Server installieren

Hinweis

Es können ausschließlich v3 Druckertreiber verwendet werden. V4 Druckertreiber werden Stand Samba 4.7 (September 2019) noch nicht unterstützt.

Jetzt können wir die Druckertreiber auf dem Server installieren.

Öffne als global-admin das Programm mmc.exe, wähle Datei snapin hinzufügen/entfernen und füge die Druckverwaltung hinzu.

mmc.exe

Trage den Server ein, klicke auf zur Liste hinzufügen und anschließend auf Fertigstellen und OK.

Wie man sieht, sind die Drucker dem Systems bekannt. Du musst nur noch die Druckertreiber installieren.

mmc.exe

Mache einen Rechtsklick auf Treiber und wähle Treiber hinzufügen. Gehe zu Weiter Weiter Datenträger… Durchsuchen Ok und wähle den richtigen Druckertreiber. Es werden nur Microsoft zertifizierte Treiber akzeptiert. Falls Du mit einem Treiber Probleme haben solltest, versuche es eventuell mit einem etwas älteren Treiber. Die werden sehr oft akzeptiert.

Klicke abschließend auf Fertigstellen.

Einem Drucker einen Druckertreiber zuweisen

Jetzt müssen wir nur noch den Druckern die Druckertreiber zuweisen.

Öffne als global-admin das Programm mmc.exe und navigiere zu Drucker.

mmc.exe

Mache einen Rechtsklick auf den Drucker, dem Du einen Druckertreiber zuweisen möchtest und wähle Eigenschaften… Falls Du gefragt wirst, ob Du einen Druckertreiber lokal installieren möchtest, antworte mit Nein.

Gehe zum Reiter Erweitert, wähle bei Treiber den passenden Treiber für den Drucker und bestätige mit OK.

Eigenschaften von

Leider ändert Windows den Namen des Drucker in den Namen des Druckertreibers. Um wieder den richtigen Namen zu setzen, machst Du in mmc.exe einen Rechtsklick auf den Drucker und wählst Eigenschaften…

Ändere unter dem Reiter Allgemein den Namen des Druckers auf den Namen, den er in CUPS hat und bestätige mit OK.

Eigenschaften Allgemein

Benutzern erlauben einen Druckertreiber zu installieren

Die Windows-Clients erlauben normalen Benutzern nicht, einen Druckertreiber zu installieren. Das müssen wir ändern, da sonst normale Benutzer nicht drucken können. Am einfachsten geht das mit folgendem Registry-Eintrag:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint
RestrictDriverInstallationToAdministrators=0 (DWORD)

Erzeuge den Eintrag mit dem Registrierungs-Editor direkt in die Registry oder lege Dir die Datei win10.printer.reg mit folgendem Inhalt an:

Windows Registry Editor Version 5.00
; linuxmuster.net 7 version
; notwendig, damit Druckertreiber installieret werden können
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint]
"RestrictDriverInstallationToAdministrators"=dword:00000000

Und doppelklicke als global-admin win10.printer.reg.

Jetzt muss nur noch ein neues Image erzeugt und verteilt werden, damit die Firewall-Einstellungen und der Registry-Eintrag auf die Windows-Clients verteilt werden.

Wenn alles geklappt hat, installieren sich die Druckertreiber auf den Windows-Clients sobald sich ein Benutzer anmeldet. Wie Du die Drucker-Raumzuweisung machst, kannst Du hier nachlesen.

Hat ein Lehrer in der Schulkonsole bei einem Drucker einen Haken gesetzt, wird der Drucker bei der Anmeldung des Lehrers zusätzlich installiert. Das ist dann sinnvoll, wenn beispielsweise ein Lehrer oft in der Nähe des Physik-Drucker unterrichtet. Dann kann er auch von jedem Laptop aus auf dem Physik-Drucker ausdrucken.

Falls o.g. Weg nicht funktionieren sollte, ist der Treiber manuell auf dem Windows Client zu installieren. Anschließend ist der Druckertreiber dem Drucker auf dem Server zuzuweisen.

Hierzu sind die eingerichteten Drucker auf dem Server zunächst auszugeben:

rpcclient 10.0.0.1 -U "LINUXMUSTER\global-admin" -c "enumdrivers 3"

LINUXMUSTER stellt den Namen der eigenen Samba-Domäne dar, global-admin ist der Administrator auf dem Server, 10.0.0.1 ist die IP des Server.

Danach ist der lokale Druckertreiber dem Drucker zuzuordnen - in nachstehendem Beispiel ist dies der Druckertreiber HP Universal Printing PS:

rpcclient 10.0.0.1 -U "LINUXMUSTER\global-admin" -c 'setdriver "DemoPrinter" "HP Universal Printing PS"'

Das Ergebnis kann mit dem zuvor genannten Befehl kontrolliert werden:

rpcclient 10.0.0.1 -U "LINUXMUSTER\global-admin" -c "enumdrivers 3"

Danach ist der Druck zu testen. Funktioniert der Drucker wie gewünscht ist ein neues Image für den Windows-Client zu erstellen.