Page 1 of 1

HP Universal Printer Driver verteilen

Posted: 30. Jul 2008, 14:18
by tgrosch
Hallo zusammen,

wir haben 400 HP-Drucker bei uns in Betrieb, die wir zu 99% mit dem HP Universaltreiber ansteuern. Nach einigen Tücken (siehe hier) habe ich jetzt das funktionierende Script fertig. Es ist sicherlich nicht frei von Verbesserungsmöglichkeiten, bei uns funktioniert es problemlos:

Hier die Anleitung

1. HP Universal Printer Driver von HP herunterladen

http://www.hp.com/go/upd

Ein "System Administrator's Guide" ist unter Documentation -> User Guides zu finden. Darin werden u.a. die Parameter für den Aufruf beschrieben

2. Variablen definieren

Ich habe die Variablen Drucker1 bis Drucker3 und Drucker1_IP bis Drucker3_IP angelegt. In "Drucker1" kommt der später in Windows angezeigte Name. D.h. es können pro PC bis zu 3 Drucker installiert werden. Bei Bedarf kann man sich natürlich auch 47 verschiedene anlegen ;)

3. Setup.inf

Im Prinzip erfolgt lediglich (in umgekehrter Reihenfolge) die Abfrage, welche Variablen überhaupt befüllt sind. Dann wird die install.exe von HP mit den entsprechenden Parametern aufgerufen (siehe o.a. Adminguide).

Ich poste nur die relevanten Teile der Setup.inf, hier die Übernahme der Variablen vom Server:

Code: Select all

[Environment]
CommonSetupDir=%CommonFilesDir%\Setup%SetupBits%
V_MachineValuesPath=%SoftwareDepotServerName%\Values$\MachineValues\%DomainName%
V_UserValuesPath=%HKLM,"Software\matrix42\Software Depot","HomeServer"%\Values$\UserValues\%UserDomain%

; Maschinenabhängige Variablen
; machine dependent variables
;VM_<Variable>=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,<Variable>%%

VM_Drucker1=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,Drucker1%%
VM_Drucker2=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,Drucker2%%
VM_Drucker3=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,Drucker3%%
VM_Drucker1_IP=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,Drucker1_IP%%
VM_Drucker2_IP=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,Drucker2_IP%%
VM_Drucker3_IP=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,Drucker3_IP%%
Das "Befüllen" der Variablen:

Code: Select all

[Product]
ReplaceEnv VM_Drucker1
ReplaceEnv VM_Drucker2
ReplaceEnv VM_Drucker3
ReplaceEnv VM_Drucker1_IP
ReplaceEnv VM_Drucker2_IP
ReplaceEnv VM_Drucker3_IP
Und schließlich die Abfrage und der Aufruf:

Code: Select all

[Set:Product]

[SET:Installation]

If %VM_Drucker3% != "" then "Install3" Endif
If %VM_Drucker2% != "" then "Install2" Endif
If %VM_Drucker1% != "" then "Install1" Endif

[Install3]
Addmeter 30
sleep 2000
Call "\\%EmpirumServer%\configurator$\Packages\Hewlett_Packard\Universaltreiber\4.5\Install.exe" /q /h /sm%VM_Drucker3_IP% /n"%VM_Drucker3%" /dod /dos /dso

[Install2]
Addmeter 60
sleep 2000
Call "\\%EmpirumServer%\configurator$\Packages\Hewlett_Packard\Universaltreiber\4.5\Install.exe" /q /h /sm%VM_Drucker2_IP% /n"%VM_Drucker2%" /dod /dos /dso

[Install1]
Addmeter 90
sleep 2000
Call "\\%EmpirumServer%\configurator$\Packages\Hewlett_Packard\Universaltreiber\4.5\Install.exe" /q /h /sm%VM_Drucker1_IP% /n"%VM_Drucker1%" /dod /dos /dso
Vielleicht hat ja noch jemand Verbesserungsideen, dafür bin ich immer dankbar.

Viele Grüße aus Fulda