Lokalen Drucker als Standarddrucker verwenden
Hallo,
ich suche ein Batch Script dass erkennt, ob ein lokaler Drucker über USB oder LPT angeschlossen ist und ihn falls dem so ist als Standartdrucker auswählt,
da vermehrt fälschlicherweise ein Netzwerkdrucker als Standartdrucker verwendet wird.
Als Ansatz hab ich schonmal den Befehl fürs setzen des Standartdruckers
"rundll32 printui.dll,PrintUIEntry /y /n Druckername"
Wüsste aber nicht wie ich die lokalen Drucker auslesen und anschließend zum Standartdrucker machen könnte.
Freundliche grüße
Chillaholic
ich suche ein Batch Script dass erkennt, ob ein lokaler Drucker über USB oder LPT angeschlossen ist und ihn falls dem so ist als Standartdrucker auswählt,
da vermehrt fälschlicherweise ein Netzwerkdrucker als Standartdrucker verwendet wird.
Als Ansatz hab ich schonmal den Befehl fürs setzen des Standartdruckers
"rundll32 printui.dll,PrintUIEntry /y /n Druckername"
Wüsste aber nicht wie ich die lokalen Drucker auslesen und anschließend zum Standartdrucker machen könnte.
Freundliche grüße
Chillaholic
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 135393
Url: https://administrator.de/forum/lokalen-drucker-als-standarddrucker-verwenden-135393.html
Ausgedruckt am: 28.04.2025 um 13:04 Uhr
4 Kommentare
Neuester Kommentar

Hallo Chillaholic!
Du kannst ja mal die beiden VB-Scripts (*.vbs) testen.
Es werden lokale Drucker an USB und LPT ermittelt, wobei auch geprüft wird, ob im Druckernamen das Wort "FAX" (Multifunktionsdrucker) vorkommt, sodass - falls vorhanden - nur der Drucker als Standarddrucker festgelegt wird.
Hier mal 2 Versionen. Die Version 1 setzt den Standardrucker unabhängig davon, ob er ein- oder ausgeschaltet ist und Version 2 setzt den Standarddrucker nur, wenn er eingeschaltet ist.
Version1 - Lokalen Drucker an USB/LPT als Standarddrucker festlegen:
Version2 - Lokalen Drucker an USB/LPT als Standarddrucker festlegen, nur wenn er Online ist:
Gruß Dieter
Du kannst ja mal die beiden VB-Scripts (*.vbs) testen.
Es werden lokale Drucker an USB und LPT ermittelt, wobei auch geprüft wird, ob im Druckernamen das Wort "FAX" (Multifunktionsdrucker) vorkommt, sodass - falls vorhanden - nur der Drucker als Standarddrucker festgelegt wird.
Hier mal 2 Versionen. Die Version 1 setzt den Standardrucker unabhängig davon, ob er ein- oder ausgeschaltet ist und Version 2 setzt den Standarddrucker nur, wenn er eingeschaltet ist.
Version1 - Lokalen Drucker an USB/LPT als Standarddrucker festlegen:
Const strComputer = "."
Const strSql = "SELECT * FROM Win32_Printer WHERE (PortName LIKE 'USB%' OR PortName LIKE 'LPT%')"
Dim objWMIService, colItems, objItem
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery(strSql, , 48)
For Each objItem In colItems
If objItem.Local Then
If InStr(1, objItem.Name, "FAX", vbTextCompare) = 0 Then objItem.SetDefaultPrinter: Exit For
End If
Next
Version2 - Lokalen Drucker an USB/LPT als Standarddrucker festlegen, nur wenn er Online ist:
Const strComputer = "."
Const strSql = "SELECT * FROM Win32_Printer WHERE (PortName LIKE 'USB%' OR PortName LIKE 'LPT%')"
Dim objWMIService, colItems, objItem
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery(strSql, , 48)
For Each objItem In colItems
If objItem.Local And objItem.WorkOffline = False Then
If InStr(1, objItem.Name, "FAX", vbTextCompare) = 0 Then objItem.SetDefaultPrinter: Exit For
End If
Next
Gruß Dieter

Hallo Chillaholic!
Hast Du's auspropiert? Quelltext z.B. unter "SetStandardPrinter.vbs" speichern und per Doppelklick starten.
Aufruf per Batch:
@echo Off
cscript //nologo SetStandardPrinter.vbs
Gruß Dieter
Hast Du's auspropiert? Quelltext z.B. unter "SetStandardPrinter.vbs" speichern und per Doppelklick starten.
Aufruf per Batch:
@echo Off
cscript //nologo SetStandardPrinter.vbs
Gruß Dieter