
Ein Problem, das öfters vorkommt ist, das nicht der richtige Standarddrucker definiert ist. Vor allem dann, wenn man sich z.B. in der Firma den Rechner mit anderen Benutzern teilen muss. Oft bemerkt man erst, wenn man direkt aus eine Applikation heraus drucken möchte, das der falsche Drucker ausgewählt wurde, also einen falschen Standarddrucker definiert wurde. Abhilfe kann hier ein Batch Script schaffen, das beim Anmelden am Rechner automatisch ausgeführt wird und den Standarddrucker definiert.
Der Batch Befehl zum definieren des Standarddruckers lautet wie folgt:
rundll32 printui.dll,PrintUIEntry /y /n DRUCKERNAME
Der Druckername entspricht dem Anzeigenamen des Druckers. Jedoch funktioniert dies nur bei lokalen Druckern. Ist es nötig, einen Netzwerkdrucker als Standard zu definieren muss vor dem Druckernamen der Printserver angegeben werden:
rundll32 printui.dll,PrintUIEntry /y /n \\PRINTSERVER\DRUCKERNAME
Diese zwei Besipele sind sehr einfach, jedoch könnte man z.B. auch das ganze abhängig vom angemeldeten Benutzer machen, ohne extra für jeden Benutzer ein eigenes Batch Script zu erstellen:
@echo off
IF %USERNAME%==USER1 (
rundll32 printui.dll,PrintUIEntry /y /n PRINTER1
)
IF %USERNAME%==USER2 (
rundll32 printui.dll,PrintUIEntry /y /n PRINTER2
)
Denkbar wäre auch, dies Abängig vom Rechnernamen auszuführen. Es gäbe also noch viel mehr Möglichkeiten. Eure Kreativität ist also gefragt

Pingback: Martin Felder
Pingback: Martin Felder
Alternativen dazu (wenn man eine Scriptingumgebung verwenden will):
Set WshNetwork = WScript.CreateObject(“WScript.Network”)
PrinterPath = “\\printserv\DefaultPrinter”
WshNetwork.AddWindowsPrinterConnection PrinterPath
Doku: http://msdn.microsoft.com/en-us/library/zsdh7hkb(VS.85).aspx
Oder per WMI über Win32_Printer: http://msdn.microsoft.com/en-us/library/aa384769(VS.85).aspx