Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Lokalen Drucker als Standarddrucker verwenden

Frage Entwicklung Batch & Shell

Mitglied: Chillaholic

Chillaholic (Level 1) - Jetzt verbinden

07.02.2010, aktualisiert 18.10.2012, 9749 Aufrufe, 4 Kommentare

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
Mitglied: matsahm
08.02.2010, aktualisiert 18.10.2012
Hallo,

Vielleicht hilft dir das ja weiter:
http://www.administrator.de/forum/installierte-drucker-auslesen-40726.h ...


Gruß
Mathias Sahm
Bitte warten ..
Mitglied: 76109
08.02.2010 um 13:21 Uhr
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:
01.
Const strComputer = "." 
02.
Const strSql = "SELECT * FROM Win32_Printer WHERE (PortName LIKE 'USB%' OR PortName LIKE 'LPT%')" 
03.
 
04.
Dim objWMIService, colItems, objItem 
05.
     
06.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
07.
Set colItems = objWMIService.ExecQuery(strSql, , 48) 
08.
     
09.
For Each objItem In colItems 
10.
    If objItem.Local Then 
11.
        If InStr(1, objItem.Name, "FAX", vbTextCompare) = 0 Then objItem.SetDefaultPrinter:  Exit For 
12.
    End If 
13.
Next
Version2 - Lokalen Drucker an USB/LPT als Standarddrucker festlegen, nur wenn er Online ist:
01.
Const strComputer = "." 
02.
Const strSql = "SELECT * FROM Win32_Printer WHERE (PortName LIKE 'USB%' OR PortName LIKE 'LPT%')" 
03.
 
04.
Dim objWMIService, colItems, objItem 
05.
     
06.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
07.
Set colItems = objWMIService.ExecQuery(strSql, , 48) 
08.
     
09.
For Each objItem In colItems 
10.
    If objItem.Local And objItem.WorkOffline = False Then 
11.
        If InStr(1, objItem.Name, "FAX", vbTextCompare) = 0 Then objItem.SetDefaultPrinter:  Exit For 
12.
    End If 
13.
Next
Gruß Dieter
Bitte warten ..
Mitglied: Chillaholic
08.02.2010 um 22:33 Uhr
Nabend,

@ matsahm
Danke für den Link hab hier auch schon ein bisschen gesucht aber den thread nich gesehen,
denk mal dass der mein Problem gelöst hat.
So ähnlich hab ichs mir vorgestellt.
@ didi1954
Danke für die Hilfe, aber kann die .vbs auch als normaler User aufgerufen werden, glaub dafür fehlen die Rechte.
Bitte warten ..
Mitglied: 76109
08.02.2010 um 23:03 Uhr
Hallo Chillaholic!

Hast Du's auspropiert? Quelltext z.B. unter "SetStandardPrinter.vbs" speichern und per Doppelklick starten.

Aufruf per Batch:
<code>
@Echo Off
cscript //nologo SetStandardPrinter.vbs

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...