Hi,
opsi läuft als System-User - der darf nicht alles.
Manchmal hilft ein /RunElevated.
Gruß
Niko
[GELÖST] Win10 - Druckertreiber - Installationsproblem wg. Berechtigung
- n.wenselowski
- Ex-uib-Team
- Beiträge: 3194
- Registriert: 04 Apr 2013, 12:15
Re: Script zur Installation von Druckertreibern funktioniert nicht
Guten Morgen zusammen,
@n.wenselowski:
Danke für den Vorschlag, dieser Parameter war mir bis dato gar nicht bekannt
Ich habe nun also meinen Aufruf der Batch um den Parameter /RunElevated ergänzt... Ich verzweifel langsam, aber das hat leider auch nichts gebracht.
Allerdings ist mir noch einmal was neues aufgefallen: Wenn ich diese Scriptzeile als Admin per Batch ausführe,
dann taucht plötzlich eine GUI auf, die mich nach Elevation fragt. Diese müsste aber eigentlich durch den Parameter /w unterdrückt werden.
Vielen Dank für die Bemühungen,
MfG
WSler
@n.wenselowski:
Danke für den Vorschlag, dieser Parameter war mir bis dato gar nicht bekannt

Ich habe nun also meinen Aufruf der Batch um den Parameter /RunElevated ergänzt... Ich verzweifel langsam, aber das hat leider auch nichts gebracht.
Allerdings ist mir noch einmal was neues aufgefallen: Wenn ich diese Scriptzeile als Admin per Batch ausführe,
Code: Alles auswählen
rundll32 printui.dll,PrintUIEntry /ia /m "$Typ_Drucker$" /h "x64" /v "Typ 3 - Benutzermodus" /f "$Driverpath_Drucker$" /u /w
Vielen Dank für die Bemühungen,
MfG
WSler
Re: Script zur Installation von Druckertreibern funktioniert nicht
Update:
Ich werde es jetzt mal mit dem opsi-template-with-admin probieren... wobei mir der Gedanke mit den Restarts nicht gefällt...
Gibt es noch eine andere Möglichkeit, ein Setup als Admin auszuführen, wobei nicht neugestartet werden muss?
Eine Batch per "Runs as Administrator" auszuführen kommt leider nicht in Frage, da wir unter Windows 10 den lokalen Admin deaktiviert halten wollen.
Ich habe inzwischen eine Batch geschrieben, die den Opsijob temporär komplett übernimmt (wenn ich sie als Administrator starte).
Hier ein Ausschnitt mit dem wichtigsten, wem es hilft...
Ich werde es jetzt mal mit dem opsi-template-with-admin probieren... wobei mir der Gedanke mit den Restarts nicht gefällt...
Gibt es noch eine andere Möglichkeit, ein Setup als Admin auszuführen, wobei nicht neugestartet werden muss?
Eine Batch per "Runs as Administrator" auszuführen kommt leider nicht in Frage, da wir unter Windows 10 den lokalen Admin deaktiviert halten wollen.
Ich habe inzwischen eine Batch geschrieben, die den Opsijob temporär komplett übernimmt (wenn ich sie als Administrator starte).
Hier ein Ausschnitt mit dem wichtigsten, wem es hilft...
Code: Alles auswählen
echo ##############################################################################
echo ####### ##################
echo ####### Wähle den Treiber aus: ##################
echo #######-----------------------------------------------------##################
echo ####### 1. Kyocera TASKalfa 250ci KX ##################
echo #######-----------------------------------------------------##################
echo ####### 21. Kyocera TASKalfa 300i KX ##################
echo ####### 22. Kyocera TASKalfa 300i KX ##################
echo ####### 23. Kyocera TASKalfa 300i KX ##################
echo #######-----------------------------------------------------##################
echo ####### 31. Kyocera TASKalfa 3010i KX ##################
echo ####### 32. Kyocera TASKalfa 3010i KX ##################
echo #######-----------------------------------------------------##################
echo ####### 4. Kyocera TASKalfa 3050ci KX ##################
echo ####### ##################
echo ##############################################################################
:auswahl
Set /p drivernr=
rem ============================================================================================================================================================================================================
if %drivernr%==1 (
echo Installiere Kyocera TASKalfa 250ci KX
rundll32 printui.dll,PrintUIEntry /if /b "Kyocera TASKalfa 250ci KX" /f "\\Pfad\zum\Treiber\OEMSETUP.INF" /r "IP-Adresse eintragen" /m "Kyocera TASKalfa 250ci KX"
goto :ende)
rem ============================================================================================================================================================================================================
echo Bitte eine andere Eingabe machen
goto :auswahl
:ende
echo ##############################################################################
echo ####### Installation abgeschlossen... ##################
echo ####### 1. Weiterer Drucker ##################
echo ####### 2. Ende ##################
echo ##############################################################################
Set /p choice=
if %choice%==1 (goto:start)
if %choice%==2 (goto:eof)
goto :ende
goto :eof
:eof
Re: Script zur Installation von Druckertreibern funktioniert nicht
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:
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:
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ß:
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
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"
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")
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 bedanke mich auch für eure Bemühungen.
MfG
WSler