Bei autom. Druckerinstallation mit prnmgr.vbs findet er nie den Pfad od. die inf. Datei
Hallo Leute
ich bin dabei, eine Batchdatei zu erstellen, welche autom. nach Eingabe der IP & des Druckermodells den Port & den Treiber inst.
Soweit funktioniert es z.B. mit HP 2100 Treibern einwandfrei. Wenn ich jedoch einen neuen Treiber verwende, z.B. Konica Minolta C250 PS, meldet er immer wieder, dass die inf. Datei nicht korrekt sei. Wenn ich mit der rechten Maustaste auf die Inf Datei klicke & dann auf installieren gehen, funktioniert es im Anschluss einwandfrei, da der Treiber bereits im System ist. Treiber Modell & Pfad sind aber richtig angegeben
Hier ein Beispiel
regsvr32 prnadmin.dll
cscript portmgr.vbs -a -h 192.168.0.11 -p IP_192.168.0.11 -t raw -n 9100
cscript prnmgr.vbs -a -b "TKM C250 PS" -m "KONICA MINOLTA C250/C250P PS" -r "IP_192.168.0.11" -p "t:\prnadmin\treiber" -f c250ps.inf
Rechner: XP Prof / SP2
jemand bereits Erfahrungen mit diesem vbs Script
oder gibt es eine andere Moeglichkeit den Treiber automatisiert per batch zu installieren??
Vielen Dank im Voraus
ich bin dabei, eine Batchdatei zu erstellen, welche autom. nach Eingabe der IP & des Druckermodells den Port & den Treiber inst.
Soweit funktioniert es z.B. mit HP 2100 Treibern einwandfrei. Wenn ich jedoch einen neuen Treiber verwende, z.B. Konica Minolta C250 PS, meldet er immer wieder, dass die inf. Datei nicht korrekt sei. Wenn ich mit der rechten Maustaste auf die Inf Datei klicke & dann auf installieren gehen, funktioniert es im Anschluss einwandfrei, da der Treiber bereits im System ist. Treiber Modell & Pfad sind aber richtig angegeben
Hier ein Beispiel
regsvr32 prnadmin.dll
cscript portmgr.vbs -a -h 192.168.0.11 -p IP_192.168.0.11 -t raw -n 9100
cscript prnmgr.vbs -a -b "TKM C250 PS" -m "KONICA MINOLTA C250/C250P PS" -r "IP_192.168.0.11" -p "t:\prnadmin\treiber" -f c250ps.inf
Rechner: XP Prof / SP2
jemand bereits Erfahrungen mit diesem vbs Script
oder gibt es eine andere Moeglichkeit den Treiber automatisiert per batch zu installieren??
Vielen Dank im Voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 33118
Url: https://administrator.de/contentid/33118
Ausgedruckt am: 24.11.2024 um 08:11 Uhr
13 Kommentare
Neuester Kommentar
Moin IceAge,
So ähnlich... das Zusammenspiel zwischen den VBS-Schnipseln und den Treibern ist nicht sehr robust und manchmal funktioniert es z.B. mit HP Laser-Druckern und manchmal mit Kyocera oder Epson... oder umgekehrt.
Der Fehler 87 sagt ja nur aus, dass "ein Parameterfehler vorliegt" (wenn ich mal die schonenden Schnörkel weglasse).
Abhilfe oder zumindest Versuche, die schon geholfen haben:
1) Absolute Pfade zu allem, was ausgerufen wird, also
2) Mehrfach beobachtet: Einige Installationen funktionierten, wenn alle Backslashes in Pfadangaben doppelt eingegeben worden. Also "C:\\install\\Epson" statt "C:\install\Epson" usw. Kein Witz.
3) Unbedingt überprüfen, ob bei den Namen-mit-Leerzeichen alle Leerzeichen an der richtigen Stelle und in der richtigen Anzahl und auch keine TABs sind (also bei so etwas wie "TKM C250 PS" und "KONICA MINOLTA C250/C250P PS" etc.)
Patentlösung hab ich auch keine; dieses Zusammenspiel von gemeinschaftlicher Druckertreiber- und Betriebssystem-installation ist einfach grottenschlecht suboptimal implementiert.
Gruß
Biber
Kann es sein, dass die VBS Scrpite nicht mit allen Treibern funktionieren??
So ähnlich... das Zusammenspiel zwischen den VBS-Schnipseln und den Treibern ist nicht sehr robust und manchmal funktioniert es z.B. mit HP Laser-Druckern und manchmal mit Kyocera oder Epson... oder umgekehrt.
Der Fehler 87 sagt ja nur aus, dass "ein Parameterfehler vorliegt" (wenn ich mal die schonenden Schnörkel weglasse).
Abhilfe oder zumindest Versuche, die schon geholfen haben:
1) Absolute Pfade zu allem, was ausgerufen wird, also
cscript prnmgr.vbs -a -b "TKM C250 PS" -m "KONICA MINOLTA C250/C250P PS" -r "IP_192.168.0.11" -p "\\serverX\prnadmin\treiber" -f c250ps.inf
2) Mehrfach beobachtet: Einige Installationen funktionierten, wenn alle Backslashes in Pfadangaben doppelt eingegeben worden. Also "C:\\install\\Epson" statt "C:\install\Epson" usw. Kein Witz.
3) Unbedingt überprüfen, ob bei den Namen-mit-Leerzeichen alle Leerzeichen an der richtigen Stelle und in der richtigen Anzahl und auch keine TABs sind (also bei so etwas wie "TKM C250 PS" und "KONICA MINOLTA C250/C250P PS" etc.)
Patentlösung hab ich auch keine; dieses Zusammenspiel von gemeinschaftlicher Druckertreiber- und Betriebssystem-installation ist einfach
Gruß
Biber
Die Angabe von kompletten Pfaden - auch für die INF-Datei - hilft oft!
Hier ein Beispiel, wo z.B. der Treiber für DesignJet4500 nicht installiert wird
HP arbeitet da mit vielen %Variablen$ und überfordert wohl prnmgr.vbs hoffnungslos!
@echo off
if exist %SystemRoot%\System32\prnadmin.dll goto LOS!
::prnadmin.dll registrieren
copy prnadmin.dll %SystemRoot%\System32
regsvr32 %SystemRoot%\System32\prnadmin.dll
:LOS!
echo.
echo Ports erstellen?
pause
set PortName=DesignJet1050_IP
set IPAdresse=192.168.115.70
cscript portmgr.vbs Nologo -a -c "" -p "%PortName%" -h "%IPAdresse%" -me -y public -i 1 -t raw -n 9100
set PortName=DesignJet4500_IP
set IPAdresse=192.168.115.69
cscript portmgr.vbsNologo -a -c "" -p "%PortName%" -h "%IPAdresse%" -me -y public -i 1 -t raw -n 9100
echo.
echo Treiber installieren?
pause
set PrinterName=DesignJet1050
set PortName=DesignJet1050_IP
set ModellName=HP DesignJet 1050C by HP
set DriverPath=T:\Treiber\Plotter\HP1050\Win2000
set INFfile=T:\Treiber\Plotter\HP1050\Win2000\DSGJ1000.inf
cscript prnmgr.vbs Nologo -a -c "" -b "%PrinterName%" -m "%ModellName%" -p "%DriverPath%" -r "%PortName%" -f "%INFfile%"
set PrinterName=DesignJet4500
set PortName=DesignJet4500_IP
set ModellName=HP Designjet 4500 HPGL2/RTL
set DriverPath=T:\Treiber\Plotter\HP4500\2K-XP
set INFfile=T:\Treiber\Plotter\HP4500\2K-XP\hpi4500h.inf
cscript prnmgr.vbsNologo -a -c "" -b "%PrinterName%" -m "%ModellName%" -p "%DriverPath%" -r "%PortName%" -f "%INFfile%"
echo.
echo Eigenschaften zuweisen?
pause
set PrinterName=DesignJet1050
echo %PrinterName% ....
rundll32 printui.dll,PrintUIEntry /Sr /n "%PrinterName%" /a "%PrinterName%.dat" 2 7 c d g u
set PrinterName=DesignJet4500
echo %PrinterName% ....
rundll32 printui.dll,PrintUIEntry /Sr /n "%PrinterName%" /a "%PrinterName%.dat" 2 7 c d g u
Gruß
Hier ein Beispiel, wo z.B. der Treiber für DesignJet4500 nicht installiert wird
HP arbeitet da mit vielen %Variablen$ und überfordert wohl prnmgr.vbs hoffnungslos!
@echo off
if exist %SystemRoot%\System32\prnadmin.dll goto LOS!
::prnadmin.dll registrieren
copy prnadmin.dll %SystemRoot%\System32
regsvr32 %SystemRoot%\System32\prnadmin.dll
:LOS!
echo.
echo Ports erstellen?
pause
set PortName=DesignJet1050_IP
set IPAdresse=192.168.115.70
cscript portmgr.vbs Nologo -a -c "" -p "%PortName%" -h "%IPAdresse%" -me -y public -i 1 -t raw -n 9100
set PortName=DesignJet4500_IP
set IPAdresse=192.168.115.69
cscript portmgr.vbsNologo -a -c "" -p "%PortName%" -h "%IPAdresse%" -me -y public -i 1 -t raw -n 9100
echo.
echo Treiber installieren?
pause
set PrinterName=DesignJet1050
set PortName=DesignJet1050_IP
set ModellName=HP DesignJet 1050C by HP
set DriverPath=T:\Treiber\Plotter\HP1050\Win2000
set INFfile=T:\Treiber\Plotter\HP1050\Win2000\DSGJ1000.inf
cscript prnmgr.vbs Nologo -a -c "" -b "%PrinterName%" -m "%ModellName%" -p "%DriverPath%" -r "%PortName%" -f "%INFfile%"
set PrinterName=DesignJet4500
set PortName=DesignJet4500_IP
set ModellName=HP Designjet 4500 HPGL2/RTL
set DriverPath=T:\Treiber\Plotter\HP4500\2K-XP
set INFfile=T:\Treiber\Plotter\HP4500\2K-XP\hpi4500h.inf
cscript prnmgr.vbsNologo -a -c "" -b "%PrinterName%" -m "%ModellName%" -p "%DriverPath%" -r "%PortName%" -f "%INFfile%"
echo.
echo Eigenschaften zuweisen?
pause
set PrinterName=DesignJet1050
echo %PrinterName% ....
rundll32 printui.dll,PrintUIEntry /Sr /n "%PrinterName%" /a "%PrinterName%.dat" 2 7 c d g u
set PrinterName=DesignJet4500
echo %PrinterName% ....
rundll32 printui.dll,PrintUIEntry /Sr /n "%PrinterName%" /a "%PrinterName%.dat" 2 7 c d g u
Gruß
Eine kleine Anmerkung noch:
Mein Batch funktioniert so wie gepostet, allerdings mit einem Zusatz, den es gibt inf-Dateien mit dermaßen verschachtelten Variablen-Zuweisungen, dass prnmgr.vbs damit nicht mehr zurechtkommt. Den Fehler hatte ich nur nicht bemerkt, weil ich den Treiber nach der manuellen Installation nicht mehr entfernt hatte.
Dann hilft es ungemein, den Treiber per printui.dll einfach vorher nur zu installieren:
rundll32 printui.dll,PrintUIEntry /ia /m "%ModellName%" /f "%INFfile%"
und dann erst den Drucker anzulegen:
cscript prnmgr.vbs //Nologo -a -c "" -b "%PrinterName%" -m "%ModellName%" -p "%DriverPath%" -r "% PortName%" -f "%INFfile%"
Gruß
Mein Batch funktioniert so wie gepostet, allerdings mit einem Zusatz, den es gibt inf-Dateien mit dermaßen verschachtelten Variablen-Zuweisungen, dass prnmgr.vbs damit nicht mehr zurechtkommt. Den Fehler hatte ich nur nicht bemerkt, weil ich den Treiber nach der manuellen Installation nicht mehr entfernt hatte.
Dann hilft es ungemein, den Treiber per printui.dll einfach vorher nur zu installieren:
rundll32 printui.dll,PrintUIEntry /ia /m "%ModellName%" /f "%INFfile%"
und dann erst den Drucker anzulegen:
cscript prnmgr.vbs //Nologo -a -c "" -b "%PrinterName%" -m "%ModellName%" -p "%DriverPath%" -r "% PortName%" -f "%INFfile%"
Gruß
@IceAge und andilao
..auch ich lese weiter höchst interessiert mit...
Diese prnmgr.vbs ist für mich auch eins der letzten ungelösten Geheimnisse neben Schröders Haarfarbe oder des Erfolgsrezepts von Thomas Gottschalk.
..auch ich lese weiter höchst interessiert mit...
Diese prnmgr.vbs ist für mich auch eins der letzten ungelösten Geheimnisse neben Schröders Haarfarbe oder des Erfolgsrezepts von Thomas Gottschalk.
fast vergessen, bei "unerklärlichen Problemen" etc. etc. sollte man die aktuellste Version der prnmgr.vbs und prnadmin.dll verwenden. Das sollte die vom "Windows Server 2003 Deployment Kit" sein, in Zeile 8: ' prnmgr.vbs - printer script for Windows .NET Server 2003, läuft ab Win 2000 ohne Probleme.
Tach zusammen, bin gerade auf diesen Thread gestossen, und finde er lässt noch Fragen offen (mir hat er nicht wirklich geholfen). Habe daher selbst etwas herumprobiert und das Problem (für mich) gelöst:
Das liegt wohl daran, dass manche Treiber unsigniert sind.
Diese kann man laut MS nicht per "cscript prndrvr.vbs" und auch nicht mit "cscript prnmngr.vbs" installieren sondern nur mit "rundll32 printui.dll,PrintUIEntry".
Ich hab das bei mir quickndirty wie folgt gelöst:
rundll32 printui.dll,PrintUIEntry /ia /m "Evolis Pebble" /h "Intel" /v "Windows 2000 oder XP" /f "\\SQL\CDH\Druckereinrichtung\NT2000\Youn.inf" /q
cscript %systemroot%\system32\prnport.vbs -a -r 4L1 -h 192.168.0.4 -o lpr -q L1 -2e
cscript %systemroot%\system32\prnmngr.vbs -a -p "Evolis Pebble" -m "Evolis Pebble" -r 4L1
geht super, allerdings kommt auf die Weise bei besagtem unsigniertem Treiber noch die typische Fehlermeldung aufgepoppt und man muss noch "Installation fortsetzen" auswählen, damit es weitergeht.
Will man diese Meldung auch noch "killen", so kann man das über die (Domänen-)Gruppenrichtlinien tun: Computerkonfiguration>Windows-Einstellungen>Sicherheitseinstellungen>Lokale Richtlinien>Sicherheitsoptionen
Hier sucht man die Richtlinie "Geräte: Verhalten bei der Installation von nichtsignierten Treibern" und legt die Einstellung auf "Ohne Warnung akzeptieren" fest. Nach dem nächsten Neustart der jeweiligen Clients kommt die Meldung dort nicht mehr.
Das liegt wohl daran, dass manche Treiber unsigniert sind.
Diese kann man laut MS nicht per "cscript prndrvr.vbs" und auch nicht mit "cscript prnmngr.vbs" installieren sondern nur mit "rundll32 printui.dll,PrintUIEntry".
Ich hab das bei mir quickndirty wie folgt gelöst:
rundll32 printui.dll,PrintUIEntry /ia /m "Evolis Pebble" /h "Intel" /v "Windows 2000 oder XP" /f "\\SQL\CDH\Druckereinrichtung\NT2000\Youn.inf" /q
cscript %systemroot%\system32\prnport.vbs -a -r 4L1 -h 192.168.0.4 -o lpr -q L1 -2e
cscript %systemroot%\system32\prnmngr.vbs -a -p "Evolis Pebble" -m "Evolis Pebble" -r 4L1
geht super, allerdings kommt auf die Weise bei besagtem unsigniertem Treiber noch die typische Fehlermeldung aufgepoppt und man muss noch "Installation fortsetzen" auswählen, damit es weitergeht.
Will man diese Meldung auch noch "killen", so kann man das über die (Domänen-)Gruppenrichtlinien tun: Computerkonfiguration>Windows-Einstellungen>Sicherheitseinstellungen>Lokale Richtlinien>Sicherheitsoptionen
Hier sucht man die Richtlinie "Geräte: Verhalten bei der Installation von nichtsignierten Treibern" und legt die Einstellung auf "Ohne Warnung akzeptieren" fest. Nach dem nächsten Neustart der jeweiligen Clients kommt die Meldung dort nicht mehr.