erikro
Goto Top

RDS Server 2012 R2 - Standarddrucker per GPO

Hallo zusammen,

leider hat intensives Googeln nicht geholfen. Vielleicht hat hier ja jemand eine Lösung.

Wir haben einen Server 2012 R2 als RDS im Einsatz. Die Drucker, die freigegeben und im AD veröffentlicht sind, sollen per GPO zugewiesen werden. Es sind insgesamt acht Drucker vorhanden. Da jeder User auf jedem Drucker drucken können soll, verteile ich in der Default Domain Policy unter Benuterzkonfiguration -> Einstellungen -> Windows-Einstellungen -> Drucker die Drucker. Hier wird kein Standarddrucker festgelegt.

Einstellungen:
Aktion: Aktualisieren
Freigabepfad: \\server\freigabename
Sonst keine weiteren Einstellungen.

[edit] Diese Zuweisung funktioniert ohne weiteres. Die Drucker sind alle sicht- und nutzbar. [/edit]

Da aber die User verschiedene Drucker als Standarddrucker nutzen, habe ich weitere GPOs, die für die jeweiligen OUs gelten, angelegt. In dieser GPO wird der jeweilige Standarddrucker an der gleichen Stelle noch einmal zugewiesen. In der GPO ist nur dieser Drucker definiert.

Einstellungen:
Aktion: Aktualisieren
Freigabepfad \\server\freigabename
Drucker als Standarddrucker festlegen (Haken gesetzt)
Der Haken ...sofern kein lokaler Drucker vorhanden ist ist NICHT gesetzt.

Wenn ich mit gpupdate /force die GPOs anwende, dann funktioniert das auch. Der jeweilige User bekommt den richtigen Standarddrucker. Wenn ich allerdings den User ab- und wieder anmelde, dann ist der Adobe PDF-Writer der Standarddrucker. Äußerst nervig, da wir eine Anwendung haben, die grundsätzlich erst einmal auf dem Standarddrucker drucken will und so bei jedem Druck erst einmal der Standarddrucker geändert werden muss.

Ich habe das jetzt so umgangen, dass ich im Logon-Skript als letzte Zeile gpupdate /force nach zehn Sekunden sleep stehen habe. Das geht, ist aber m. E. nicht wirklich elegant.

Hat jemand eine andere Lösung?

Liebe Grüße

Erik

Content-Key: 367893

Url: https://administrator.de/contentid/367893

Printed on: April 19, 2024 at 04:04 o'clock

Member: Looser27
Looser27 Mar 13, 2018 updated at 10:05:07 (UTC)
Goto Top
Du solltest Dich eher fragen, warum die GPO so spät, bzw. gar nicht verarbeitet wird.
Verabeitungsreihenfolge der GPOs schon mal geändert?
Member: emeriks
Solution emeriks Mar 13, 2018 updated at 11:00:49 (UTC)
Goto Top
Hi,
die GPP und das ewig nicht enden wollende Thema. Die GPP sind m.E. sehr unzuverlässig.

Workaround:
In der GPO für den Benutzer, wo Du dessen Standarddrucker setzt, an erster Rangfolge den Drucker löschen, an zweiter Rangfolge den Drucker verbinden und als Standard.

Oder in der GPO für den User den Standarddrucker per Loginscript setzen.
z.B. per VBS
CreateObject("Wscript.Shell").Sleep 15000  
CreateObject("Wscript.Network").SetDefaultPrinter "\\server\drucker"  

E.
Member: erikro
erikro Mar 13, 2018 at 12:51:13 (UTC)
Goto Top
Verarbeitet werden sie. Der Rest geht ja auch. Ich vermute eher, dass die Drucker noch nicht fertig eingerichtet sind in dem Moment, in dem die GPO den Standarddrucker setzt.

Reihenfolge? Naja, es sind ja nur zwei. Die Default Domain Policy und die, die direkt auf die OU wirkt.
Member: emeriks
emeriks Mar 13, 2018 at 12:53:11 (UTC)
Goto Top
Reihenfolge? Naja, es sind ja nur zwei. Die Default Domain Policy und die, die direkt auf die OU wirkt.
Ich meine, wenn Du in der 2. GPO (User-bezogen) das Löschen des Druckers hinzufügen würdest. Dort an 1. Stelle der Rangfolge. (nicht verwechseln mit 1. Stelle in der Anzeige)
Member: erikro
erikro Mar 13, 2018 at 14:13:55 (UTC)
Goto Top
Die Rückfrage war für Looser27. ;)
Member: erikro
erikro Mar 13, 2018 at 14:15:38 (UTC)
Goto Top
Mit erst löschen und dann wieder anlegen scheint zu funktionieren. Danke. Ist aber ziemlich bescheuert, ihn erst anzulegen in der DDP, dann wieder löschen und dann wieder anlegen. Naja, Microsoft halt. ;)
Member: Looser27
Looser27 Mar 13, 2018 at 14:33:40 (UTC)
Goto Top
Du kannst innerhalb einer Gpo die Reihenfolge der Abarbeitung und für die GPO s als ganze auch eine Reihenfolge festlegen. Vielleicht bringt hier eine Änderung dieser das gewünschte Ergebnis.
Member: erikro
erikro Mar 14, 2018 at 07:58:41 (UTC)
Goto Top
Zu früh gefreut. Mit meinem User hat es geklappt. Egal in welche OU ich ihn verschoben habe, jedesmal der richtige Drucker. Bei meinen Usern klappt es nicht. Wieder gab es den Adobe PDF Writer als Standard. Also doch der Würgaround mit gpupdate im Logon-Skript.
Member: erikro
erikro Mar 26, 2018 at 11:00:03 (UTC)
Goto Top
Jetzt die endgültige Lösung:

Die Drucker werden ohne Standarddrucker auf Ebene der Domäne alle zugewiesen. Der TS wird per WMI weggefiltert, so dass er gar keine Drucker mehr bekommt, da die ja per Weiterleitung von der Basis zugewiesen werden.

Beim Login wird der Standarddrucker per Powershell-Skript zugewiesen:

Start-Sleep 20

$printer = $(Get-WmiObject -class win32_printer | Where-Object { $_.name -like "*XXX Drucker*" })  
$printer.setdefaultprinter()
Add-Type -Assembly 'System.Windows.Forms'  

[Windows.Forms.MessageBox]::Show("Druckereinrichtung abgeschlossen ...”, "", [Windows.Forms.MessageBoxButtons]::OK, [Windows.Forms.MessageBoxIcon]::Information)  

20 Sekunden schlafen, weil ich festgestellt habe, dass der TS manchmal die Drucker nicht sofort bereitstellt.

$_.name -like deshalb, weil der Druckername sich beim Weiterleiten ändert. Am Ende steht im Klammern (umgeleitet X), wobei X eine variable Zahl ist.

Die Messagebox dient dazu, dem User mitzuteilen, dass er jetzt den richtigen Drucker hat.

Ganz wichtig! Wenn man die Skripts per GPO zuweist, dann muss man beachten, dass ab Windows 8.1 bzw. 2012 R2 die per GPO zugewiesenen Skripts im Standard erst nach 5 Minuten ausgeführt werden. Das lässt sich per GPO ändern (Computerkonfiguration -> Richtlinien -> Administrative Vorlagen -> System -> Gruppenrichtlinie -> Anmeldeskriptverzögerung konfigurieren -> deaktivieren).
Member: emeriks
emeriks Mar 26, 2018 at 11:37:40 (UTC)
Goto Top
Die Drucker werden ohne Standarddrucker auf Ebene der Domäne alle zugewiesen.
Der TS wird per WMI weggefiltert, so dass er gar keine Drucker mehr bekommt,
Das kann man ja noch verstehen,
da die ja per Weiterleitung von der Basis zugewiesen werden.
aber dies nicht mehr? Drucker weiterleiten? Du meist per LPR? Basis?
20 Sekunden schlafen, weil ich festgestellt habe, dass der TS manchmal die Drucker nicht sofort bereitstellt.
Das hat nichts speziell mit dem TS zu tun. Ich nehme an, Ihr habt Roaming Profiles? Falls ja, dann ist das Verhalten klar. Das Benutzerprofil wird erst geladen, danach wird die Druckerumgebung für diesen Benutzer initialisiert. Dies kann manchmal bis zu einer Minute dauern. das hängt u.a. davon ab, wieviel Drucker im Benutzerprofil stehen (verbunden werden müssen), was für Modelle das sind (Treiber) usw.
Das hast Du also richtig erkannt, dass man hier eine Kunstpause einlegen muss.
$_.name -like deshalb, weil der Druckername sich beim Weiterleiten ändert. Am Ende steht im Klammern (umgeleitet X), wobei X eine variable Zahl ist.
Kann es sein, dass Du das Durchreichen der Clientdrucker an die RDP-Sitzung meinst?
Die Messagebox dient dazu, dem User mitzuteilen, dass er jetzt den richtigen Drucker hat.
Nicht zu früh freuen! face-wink Wenn Du es konsequent machen willst, dann musst Du Fehler abfangen und/oder explizit überprüfen, ob anschließend der korrekte Drucker der Standarddrucker ist.
Ganz wichtig! Wenn man die Skripts per GPO zuweist, dann muss man beachten, dass ab Windows 8.1 bzw. 2012 R2 die per GPO zugewiesenen Skripts im Standard erst nach 5 Minuten ausgeführt werden. Das lässt sich per GPO ändern (Computerkonfiguration -> Richtlinien -> Administrative Vorlagen -> System -> Gruppenrichtlinie -> Anmeldeskriptverzögerung konfigurieren -> deaktivieren).
Auf einem TS sollte man sowas sowieso abschalten.
Auch die GPO "immer auf das Netzwerk warten" hilft.
Member: erikro
erikro Mar 26, 2018 at 11:46:01 (UTC)
Goto Top
Zitat von @emeriks:

da die ja per Weiterleitung von der Basis zugewiesen werden.
aber dies nicht mehr? Drucker weiterleiten? Du meist per LPR? Basis?
20 Sekunden schlafen, weil ich festgestellt habe, dass der TS manchmal die Drucker nicht sofort bereitstellt.
Das hat nichts speziell mit dem TS zu tun. Ich nehme an, Ihr habt Roaming Profiles? Falls ja, dann ist das Verhalten klar. Das Benutzerprofil wird erst geladen, danach wird die Druckerumgebung für diesen Benutzer initialisiert. Dies kann manchmal bis zu einer Minute dauern. das hängt u.a. davon ab, wieviel Drucker im Benutzerprofil stehen (verbunden werden müssen), was für Modelle das sind (Treiber) usw.
Das hast Du also richtig erkannt, dass man hier eine Kunstpause einlegen muss.
$_.name -like deshalb, weil der Druckername sich beim Weiterleiten ändert. Am Ende steht im Klammern (umgeleitet X), wobei X eine variable Zahl ist.
Kann es sein, dass Du das Durchreichen der Clientdrucker an die RDP-Sitzung meinst?

Ja, das meinte ich. Irgendwie werde ich heute nicht richtig wach. Blöde Zeitumstellung.

Die Messagebox dient dazu, dem User mitzuteilen, dass er jetzt den richtigen Drucker hat.
Nicht zu früh freuen! face-wink Wenn Du es konsequent machen willst, dann musst Du Fehler abfangen und/oder explizit überprüfen, ob anschließend der korrekte Drucker der Standarddrucker ist.

Das gibt es dann in der Version 1.1 ;) Recht hast Du natürlich.

Ganz wichtig! Wenn man die Skripts per GPO zuweist, dann muss man beachten, dass ab Windows 8.1 bzw. 2012 R2 die per GPO zugewiesenen Skripts im Standard erst nach 5 Minuten ausgeführt werden. Das lässt sich per GPO ändern (Computerkonfiguration -> Richtlinien -> Administrative Vorlagen -> System -> Gruppenrichtlinie -> Anmeldeskriptverzögerung konfigurieren -> deaktivieren).
Auf einem TS sollte man sowas sowieso abschalten.
Auch die GPO "immer auf das Netzwerk warten" hilft.

Stimmt, die habe ich ganz vergessen zu erwähnen. Die habe ich auch aktiviert.