Druckertreiber Einstellungen per Script
Hallo an alle,
ich habe mir ein Script geschrieben womit ich einen lokalen Druckertreiber installieren kann (per .inf) funktioniert auch ganz gut.
Jetzt würde ich gerne noch die Einstellungen des Treibers per Script machen.
Mit einer Batch hatte ich es mit diese Befehlszeile gelöst:
%windir%\System32\RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry /Sr /n "%Name%" /a "sw.dat" d u g 8 r
Den Druckernamen bekomme ich wohl noch hin, aber wie kann ich die Option a/ "sw.dat" d u g 8 r in vbs umsetzen? sw.dat ist die Datei wo die Einstellungen drin gespeichert sind.
strCommand = "cmd /c c:\\windows\system32\rundll32 printui.dll,PrintUIEntry /Sr /n """ & strPrinterName & """ ????? /a "sw.dat" d u g 8 r ?????
hab schon viel versucht aber es will nicht klappen. Hat einer einen heissen Tip für mich? Würde mich riesig freuen.
Grüße
Thomas
ich habe mir ein Script geschrieben womit ich einen lokalen Druckertreiber installieren kann (per .inf) funktioniert auch ganz gut.
strComputer = "."
dip = InputBox("IP-Adresse eingeben: " &VbCRLF&VbCRLF&_
"z.B. 192.168.5.180" , "IP-Adresse")
dname = InputBox("Bitte Druckername eingeben: " &VbCRLF&VbCRLF&_
"z.B. e-2505 Farbe" , "Druckername")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
objWMIService.Security_.Privileges.AddAsString "SeLoadDriverPrivilege", True
Install dip
' Start the install of the printer
sub Install(strIP)
InstallPrinterPort strIP
end Sub
Sub InstallPrinterPort(strIP)
' Erst prüfen ob der Port existiert #########################
Set colInstalledPorts = objWMIService.ExecQuery _
("Select Name from Win32_TCPIPPrinterPort")
For each objPort in colInstalledPorts
If objPort.Name="IP_" & strIP then exit sub ' We have a result, so no need to add port
Next
' Neuen IP-Port erstellen ###################################
Set objNewPort = objWMIService.Get _
("Win32_TCPIPPrinterPort").SpawnInstance_
objNewPort.Name = strIP
objNewPort.Protocol = 1
objNewPort.HostAddress = strIP
objNewPort.PortNumber = "9100"
objNewPort.SNMPEnabled = False
objNewPort.Put_
end Sub
'###################################################### 64Bit-Treiber inst.
strBasePrinter = dname
strPrinterName = "Toshiba Universal Printer 2"
strINFPath = "\Service-Tool\64bit\eSf6u.inf"
strIPPort = dip
Set objShell = CreateObject("WScript.Shell")
strCommand = "cmd /c c:\\windows\system32\rundll32 printui.dll,PrintUIEntry /if /b """ & strBasePrinter & """ /f " & strINFPath & " /r """ & strIPPort & """ /m """ & strPrinterName & """ & /Z" ' ,0,True
objShell.Run strCommand, 1, True
Jetzt würde ich gerne noch die Einstellungen des Treibers per Script machen.
Mit einer Batch hatte ich es mit diese Befehlszeile gelöst:
%windir%\System32\RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry /Sr /n "%Name%" /a "sw.dat" d u g 8 r
Den Druckernamen bekomme ich wohl noch hin, aber wie kann ich die Option a/ "sw.dat" d u g 8 r in vbs umsetzen? sw.dat ist die Datei wo die Einstellungen drin gespeichert sind.
strCommand = "cmd /c c:\\windows\system32\rundll32 printui.dll,PrintUIEntry /Sr /n """ & strPrinterName & """ ????? /a "sw.dat" d u g 8 r ?????
hab schon viel versucht aber es will nicht klappen. Hat einer einen heissen Tip für mich? Würde mich riesig freuen.
Grüße
Thomas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 358948
Url: https://administrator.de/contentid/358948
Ausgedruckt am: 23.11.2024 um 11:11 Uhr
4 Kommentare
Neuester Kommentar
https://www.gruppenrichtlinien.de/de/artikel/drucker-per-script-zuweisen ...
Im Zweifel murksen und im VBS eine separate Batch aufrufen.
Im Zweifel murksen und im VBS eine separate Batch aufrufen.
Hi,
strINFPath mit Leerzeichen? Falls ja --> diesen auch in "". Edit: Auch nee, ich sehe. Schon mal einen absoluten Pfad für strINFPath probiert?
Was soll das Hochkomma am Ende nach den /Z" ?
E.
Edit:
Versuche "cmd.exe /k ..."
Dann bleibt das Fenster offen und Du kannst ggf. Ausgaben lesen.
strCommand = "cmd /c c:\\windows\system32\rundll32 printui.dll,PrintUIEntry /if /b """ & strBasePrinter & """ /f " & strINFPath & " /r """ & strIPPort & """ /m """ & strPrinterName & """ & /Z" ' ,0,True
Ein "\" zuviel beim "C:\".strINFPath mit Leerzeichen? Falls ja --> diesen auch in "". Edit: Auch nee, ich sehe. Schon mal einen absoluten Pfad für strINFPath probiert?
Was soll das Hochkomma am Ende nach den /Z" ?
E.
Edit:
Versuche "cmd.exe /k ..."
Dann bleibt das Fenster offen und Du kannst ggf. Ausgaben lesen.
Hallo Tommesy,
ich hatte ne ganze Zeit lang, das gleich Problem wie du. Bei mir die Lösung, statt einer .dat eine .bin zu verwenden. Ich weiß auch nicht woran das liegt, funktioniert aber. Was du auch beachten musst, ist das jegliche Unterschiede am PC eine große rolle spielen. z.B.
- dat/.bin in Win7 gemacht // geht nicht auf Win 10
- Win7 Home auf Win7 Pro geht auch nicht
- teilweise geht es auch schon nicht, wenn ein neueres Windows Update drauf ist
- Sprache muss die gleiche sein
usw.
Habe mir mit der Zeit eine Datenbank von .bin Dateien angelegt für jegliche Betriebssysteme und deren Versionen.
ich hatte ne ganze Zeit lang, das gleich Problem wie du. Bei mir die Lösung, statt einer .dat eine .bin zu verwenden. Ich weiß auch nicht woran das liegt, funktioniert aber. Was du auch beachten musst, ist das jegliche Unterschiede am PC eine große rolle spielen. z.B.
- dat/.bin in Win7 gemacht // geht nicht auf Win 10
- Win7 Home auf Win7 Pro geht auch nicht
- teilweise geht es auch schon nicht, wenn ein neueres Windows Update drauf ist
- Sprache muss die gleiche sein
usw.
Habe mir mit der Zeit eine Datenbank von .bin Dateien angelegt für jegliche Betriebssysteme und deren Versionen.