Lösung:
Hallo zusammen,
Ich habe das Problem in etwa Lösen können.
Für alle, die einmal vor einem ähnlichen Problem stehen:
Ich habe mir eine Batchdatei angelegt, die extern vom Setup.ins Script liegt. Inhalt ist folgender:
Code: Alles auswählen
rundll32 printui.dll,PrintUIEntry /if /b "Hier steht der Druckername" /f "Pfad\zur\inf\Datei" /r "Hier ist die IP-Adresse drin" /m "Hier steht der Druckertyp"
Diese Batch muss als Administrator ausgeführt werden... Das geschieht per "RunAs"
Weil ich jetzt aber mein Administratorpasswort so ungern irgendwo "frei" lesbar reinschreibe, habe ich ein AutoIT-script verfasst und dieses als .EXE kompiliert. Der Inhalt ist in etwa Folgender:
Code: Alles auswählen
RunAs("Administrator",@ComputerName,"Trage dein Passwort für Administrator ein","","Trage hier die Bat mit Pfad ein")
So nun habe ich eine .Bat und eine .EXE, die diese .Bat ausführt.
Nun binde ich den Spaß in mein Opsi-script ein und schon läuft der Spaß:
Code: Alles auswählen
; Task: Install Printer W10
;==================================================================================================================================================================================================================
; INFO: Um Eigenschaften des Druckers zu bearbeiten, muss die Install.bat angepasst werden.
;==================================================================================================================================================================================================================
[actions]
DefVar $msversion$
DefVar $Name_Drucker$
DefVar $Typ_Drucker$
DefVar $IP_Drucker$
DefVar $Port_Drucker$
DefVar $Driverpath_Drucker$
DefVar $Driverpath_Drucker_Reg$
DefVar $IP_Computer$
DefVar $SystemType$
DefVar $Installpath$
;==================================================================================================================================================================================================================
; Hier entsprechende Anpassungen machen:
;==================================================================================================================================================================================================================
set $msversion$ = GetMsVersionInfo
Set $Name_Drucker$ ="Druckername eintragen"
Set $Typ_Drucker$ ="Druckertyp eintragen"
Set $IP_Drucker$ = "IP eintragen"
Set $Port_Drucker$ = "Port eintragen"
Set $IP_Computer$ = "%PCName%"
Set $SystemType$ = GetSystemType
;==================================================================================================================================================================================================================
ShowBitmap /3 "%scriptpath%\printer.png" "Druckertreiber"
;==================================================================================================================================================================================================================
;Installiertes Betriebssystem ueberpruefen
if CompareDotSeparatedNumbers($msversion$,"5.2") < "0.1"
comment "Installiertes OS: WindowsXP"
comment "Dieses Betriebssystem wird nicht mehr unterstützt!"
isFatalError
;---------------------------------------------------------------------------------
;-- Hier wurde früher Windows XP Treiber installiert -> nicht mehr benötigt --
;-- Set $Driverpath_Drucker$ = "%ScriptPath%\32bit\XP and newer\OEMSETUP.INF" --
;-- Set $Driverpath_Drucker_Reg$ = "%ScriptPath%\32bit\xp-32.reg" --
;---------------------------------------------------------------------------------
else
if CompareDotSeparatedNumbers($msversion$,"6.2") < "0.1"
comment "Installiertes OS: Windows7"
else
if CompareDotSeparatedNumbers($msversion$,"10.1") < "0.1"
comment "Installiertes OS: Windows 10"
else
comment "Dieses Betriebssystem wird leider nicht unterstützt."
isFatalError
endif
endif
endif
;==================================================================================================================================================================================================================´
Winbatch_copy
Registry_install_Printport
Winbatch_restart_spool
Winbatch_install_Printer
sleepseconds 10
DosInAnIcon_set_rights
Files_Delete
;==================================================================================================================================================================================================================
[Registry_install_Printport]
OpenKey [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\$IP_Drucker$]
Add "Protocol" = REG_DWORD:00000001
Add "Version" = REG_DWORD:00000001
Add "HostName" = "$IP_Drucker$"
Add "IPAddress" = "$IP_Drucker$"
Add "HWAddress" = ""
Add "PortNumber" = REG_DWORD:$Port_Drucker$
Add "SNMP Community" = "public"
Add "SNMP Enabled" = REG_DWORD:00000001
Add "SNMP Index" = REG_DWORD:00000001
[winbatch_restart_spool]
net.exe stop Spooler
net.exe start Spooler
[DosInAnIcon_set_rights]
%ScriptPath%\prg\setacl -on "\\$IP_Computer$\$Name_Drucker$" -ot prn -actn ace -ace "n:Jeder;p:full"
[Files_Delete]
delete -sf C:\tmp\driver
[Winbatch_copy]
xcopy "%ScriptPath%\64bit" "C:\tmp\driver" /E /Y /I
[Winbatch_install_Printer]
C:\tmp\driver\RunAsAdmin.exe
Ich weiß nicht ob es das schönste ist, aber ich hoffe ich konnte helfen.
Ich bedanke mich auch für eure Bemühungen.
MfG
WSler