
| 1. | Grundvoraussetzung ist natürlich der Windows Server 2003 R2 und seine neue Druckerverwaltung. |
| Diese muss zuerst auf einem Server installiert werden. In diese Verwaltung können hinterher weitere Server integriert werden, auch normale Memberserver, die Drucker Freigaben enthalten. Nur die Verwaltung muss über die neue Konsole geregelt sein. Sobald diese installiert ist, wird auch die neue Funktion im GPEditor verfügbar. | |
| Die Installation der Komponente erfolgt über: Systemsteuerung \ Software \ Windows Komponenten \ Verwaltungs- und Überwachungsprogramme \ Druckverwaltungskomponente | |
| 2. | Bereitstellung eines Druckers. Das kann über 2 Wege geschehen: |
| a) über die Gruppenrichtlinie selber | |
| b) über die Druckerverwaltung. | |
| Da der Weg über die Druckerverwaltung etwas ungewohnt ist, hier mal ein paar Screen Shots. | |
![]() | |
danach dem Assitenten folgen und über Durchsuchen \ bereit stellen für auswählen \ Hinzufügen : |
|
![]() |
|
![]() |
|
| In der Druckverwaltung und natürlich auch in der GPO findet man den bereitgestellten Drucker dann wieder: | |
![]() | |
| 3. | Für den Client muss jetzt noch sein Anmeldescript angepasst werden. Auch hier stehen wieder mehrere Mögichkeiten zur Auswahl. |
| Schau euch einfach mal wieder das HowTo: AnmeldeSkripte an. Man muss ja nicht alles doppelt notieren. | |
| Die benötigte pushprinterconnections.exe liegt auf dem Server, auf dem die Druckverwaltung installiert wurde unter %systemroot%\PMCSnap | |
| Die pushprinterconnections.exe
kennt noch "-log" als Parameter, wird dieser gesetzt wird eine *.log
Datei im %temp% des Benutzers, bzw. %windir%\Temp wenn es pro Computer
zugewiesen wurde erstellt. Diese beiden Pfade sind hardcodiert. | |
| 3a) | Beispiel: |
| Man kopiert die
%systemroot%\PMCPSnap\pushprinterconnections.exe nach
%logonserver\netlogon und verwendet sie in einem klassischen
Anmeldescript und speichert die LogFiles auf einer Freigabe des Servers: | |
| %logonserver%\netlogon\pushprinterconnections.exe -log copy %temp%\ppcUser.log \\DerServer\DieLogFileFreigabe\Printer.%username%.txt /y |
Dem einfachen
Bereistellen folgen noch eine paar offene Fragen:
(Achtung!
Ironie und Sarkasmus Detektor aktivieren)
| 1. | Wie definiere ich einen Standarddrucker, wenn mehrere Drucker über die Gruppenrichtlinien verteilt werden? |
|
Mit irgendeiner anderen
intelligenten Lösung, da MS es versäumt hat, diese Option zu
hinterlegen. | |
| 2. | Wieso kann ich einen Drucker über die Druckverwaltung bereitstellen, aber über diese Konsole nicht wieder löschen? |
|
Das scheint nur so, man
muss einfach den "Mit Gruppenrichtlinien bereitstellen" Wizard noch mal
aufrufen, um den Drucker aus der GPO zu löschen. Das ist so wie "Start" drücken zum "Beenden". | |
| 3. | Warum sind die Pfade für das Logfile hardcodiert? |
|
weil man gedacht hat ...da
MS es versäumt hat, diese Option variabel zu gestalten. | |
| 4. | Anschliessend an 3) Wieso kann ich etwas nur lokal am dem Client speichern, was mich zentral am Server interessiert? |
|
Mal ehrlich: Wen
interessieren schon Protokolldateien, die sich sowieso keiner anschaut? Der Grund warum es nicht geklappt hat steht da eh nicht drin, von daher ist das LogFile auch egal. | |
| 5 | zu 4) Wieso muss ich auch die Kopie des Logfiles auf den Server schon wieder scripten? Das hätte man doch wohl integrieren können. |
|
siehe Antwort 4) schaut ja
doch keiner rein. | |
| 6. | Warum erscheint ein Drucker 2mal in der Gruppenrichtlinie, wenn ein und derselbe Drucker einmal über den GPEditor und einmal über die Druckverwaltung hinzugefügt wurde? |
|
weil diese beiden Programme
anscheinend von unterschiedlichen Entwicklerteams bearbeitet werden,
die nicht miteinander reden. | |
| 7. | Anschliessend an 6.) Warum gibt es da keinen Prüfmechanismus, der verhindert das ein und derselbe Drucker 2mal erscheint? |
|
Jetzt mal nicht nörgeln, es
gibt ihn doch! Nur dummerweise überprüft der GPeditor den UNC Pfad und trägt keinen 2ten Drucker mit gleichem UNC Pfad in die GPO ein und die Druckerverwaltung überprüft den Anzeigenamen/Veröffentlichungsnamen aus dem AD. Was dazu führt, daß es den \\SERVER\HPLaserJet geben kann und den "HP LaserJet". Man bekommt den Eindruck das die beiden Programme von unterschiedlichen Entwicklerteams bearbeitet werden, die nicht miteinander reden. | |
| 8. | Wäre es denn wirklich so ein Aufwand gewesen die Funktion auch für "alte" Clients als CSE zu realisieren? |
|
Keine Ahnung, eleganter
wäre es auf jeden Fall gewesen. Ich sehe kein Problem für eine neue
Funktion ein Update einspielen zu müssen. | |
| 9. | Warum bieten Drittanbieter (DesktopStandard, Special Operation etc.) Client Side Extensions an, der Testaufwand müsste doch der gleiche sein? |
|
Tja, das ist eine Frage, zu
der mir wirklich nichts einfällt. | |
| 10. | Warum werde ich das Gefühl nicht los, das es sich hier um eine "Small Business" Lösung handelt, in der es nur einen Drucker zum Verteilen gibt? |
|
Hehe, da komme ich selber
ins Schmunzeln. | |
| 11. | Kennt ihr eigentlich den Unterschied zwischen "gut gemeint" und "gut gemacht"? |
| Wir schon, aber *piiiiiiiiiiiiiiieeeeeeeeeeeeeeep* wohl nicht. |
Der Beweis:
Ich habe bis gerade
nur geglaubt und gehofft, daß meine Vermutungen nur die
Verzweiflung wiederspeigeln,
die mich manchmal packt, wenn
ich mir diesen Mist anschaue, aber heute bin ich
über den Beweis gestolpert.
Schaut mal in die
Registry und vergleicht die Werte der Client Side Extension
"Bereitgestellte Drucker" (Deployed Printer Connections)
mit
allen anderen hinterlegten:
Pfad zu den
vorhandenen/installierten/registrierten CSEs:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Winlogon\GPExtensions
GUID
der CSE über die wir Lachen: {8A28E2C5-8D06-49A4-A08C-632DAA493E17}
Man
beachte die Werte unterhalb dieser GUID, die in jeder anderen CSE auch
vorkommen (können)
"NoSlowLink",
"MaxNoGPOListChangesInterval", "NoGPOListChanges",
"NotifyLinkTransition", "NoUserPolicy",
"NoMachinePolicy",
"PerUserLocalSettings", "EnableAsynchronousProcessing",
"NoBackgroundPolicy"
DAS SIND
REG_BINARY! In JEDER anderen CSE sind es REG_DWORDs und können mit der
vorhandenen
system.adm manipuliert werden ... bei REG_BINARY
scheidet das aus.
Man wird die Werte
sicherlich auch als REG_DWORD integrieren können und ich gehe davon
aus, daß es funtkioniert,
aber alleine die Tatsache, daß diese
Optionen der CSE eben nicht wie alle anderen strukturiert sind ist für
mich der Beweis,
daß die beiden Teams da an keiner Stelle
miteinander kommuniziert haben und sie sich nicht mal die Mühe gemacht
haben
nachzuschauen, wie es denn "normalerweise" mit diesen Werten in der
Registry aussieht. :-(
(c)
2003 - heute, Mark Heitbrink, weitere Informationen unter
WebSite-Info\Copyright