Netzwerkdrucker basierend auf AD-Gruppen verteilen
Eine Aufgabe, die die meisten kennen: Es kommt ein neuer Drucker in das Netzwerk und muß den Benutzern zugewiesen werden. Bei manueller Durchführung ist es ab einer gewissen Anzahl von Clients eine mehr als lästige Sache und hat man bereits ein Skript zur Verteilung so muß dieses i.d.R. in gewissem Umfang angepaßt werden.
Das zum Download angebotene VBSkript müssen Sie nur erstmalig an die Umgebung anpassen und die Verteilung der Drucker wird komplett über Gruppen im Active Directory (AD) geregelt.
Hier gibt es eine aktualisierte Version des Skripts!
Konfiguration
Es ist erforderlich im AD eine Organisationseinheit (OU) anzulegen und für jeden Drucker, der verteilt werden soll, (mindestens) eine Gruppe.
Im Skript selbst ist es dann noch notwendig, daß Sie es über die Konstanten in den Zeilen 22-25 mit den benötigten Informationen über die Umgebung versorgen. Diese sind:
Konstante | Beschreibung | Beispielwert |
PRINTSERVER | Name des Servers auf dem die Drucker Freigegeben sind | server1 |
PRINTER_OU | DN der OU mit den Gruppen (ohne DC) | ou=Netzwerkdrucker,ou=Gruppen |
SUFFIX_STD_PRINTER | Suffix für Gruppen zum Setzen von Standarddruckern. | _Std |
Beispiel
Würden wir die Konstanten mit den in der Tabelle genannten Beispielwerten belegen würde es in der Praxis folgendermaßen aussehen:
Die Druckerfreigaben sind auf dem Server server1 zu finden:
In der OU bistron.eu/Gruppen/Netzwerkdrucker (ou=Netzwerkdrucker,ou=Gruppen) ist je Drucker eine Sicherheitsgruppe hinterlegt, welche in der Beschreibung den Druckerfreigabenamen enthält, und eine weitere mit dem Suffix _Std und leerer Beschreibung, um die Drucker als Standarddrucker zuweisen zu können:
Ein Benutzer muß, wenn wir ihm einen Drucker als Standarddrucker zuweisen möchten, immer in beiden Gruppen sein.
Verschachtelung von Gruppen wird nicht unterstützt – also müssen die Benutzer direkt in die Gruppen eingetragen werden.
Fügen wir nun einen Benutzer zu den Gruppen Verteilung_Drucker_1, Verteilung_Drucker_1_Std, Verteilung_Drucker_2 und Verteilung_Drucker_3_Std hinzu
erhalten wir bei Ausführung des Skriptes unter diesem folgendes Ergebnis:
- Alle bereits von server1 verbundenen Drucker werden entfernt
- Drucker 1 wird verbunden und als Standarddrucker gesetzt
- Drucker 2 wird verbunden
- (Drucker 3 wird weder verbunden noch als Standarddrucker gesetzt)
Client-Migration
Das Skript ist auch dazu geeignet beim Wechsel des Printservers alle Verbindungen zum alten Server zu entfernen und vom neuen Printserver entsprechend wiederherzustellen. Um dies zu bewerkstelligen müssen wird der Konstante PRINTSERVER_ALT im Skript den Namen des alten Printservers und der Konstante PRINTSERVER natürlich den Namen des neuen Printservers zuweisen.
Beispiel
Nehmen wir an, daß wir alle Drucker z.B. mit Hilfe des Tools PrintMigrator von Server1 auf Server2 verlagert haben – dann sollte unser Skript (ab Z. 22) in etwa so aussehen:
Const PRINTSERVER = "server2" '* Name Server mit Druckerfreigaben Const PRINTSERVER_ALT = "server1" '* Name des alten Printservers Const PRINTER_OU = "ou=Netzwerkdrucker,ou=Gruppen" '* OU mit Sicherheitsgruppen zur Druckerverteilung Const SUFFIX_STD_PRINTER = "_Std" '* Suffix d. Gruppen zum setzen von Standard-Druckern
Als Resultat werden alle Druckerverbindungen zu Server1 dauerhaft entfernt und entsprechend neu zu Server2 aufgebaut.
30. September 2016 um 15:24 Uhr - -
Die strPrinterShare sind bei mir leer,
bekomme immer folgende Fehler: 0x80070709 & 0x80020009
Kannst du mir da weiterhelfen?
8. Oktober 2016 um 01:16 Uhr - -
Hi, kannst Du mir ein Debug-Log zu den Fehlern zukommen lassen? Dann kann ich es mir kurz mal ansehen…