mc-doubleyou
Goto Top

UAC Prompt verhindern in Verbindung mit Elevate.exe

Hallo zusammen,

wir haben bei uns ein Programm im Einsatz welches sich selbst Updaten können muss, es schreibt also ins Programmverzeichnis.
Damit das funktioniert und weil ich die UAC eigentlich nicht abdrehen möchte nutze ich die Elevate.exe, allerdings funktioniert dann
set __COMPAT-LAYER=RunAsInvoker
nicht und ich bekomme wieder die UAC Prompt.
Lässt sich das irgendwie verhindern?

Danke!

LG mcdy

Content-ID: 228063

Url: https://administrator.de/contentid/228063

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

DerWoWusste
DerWoWusste 29.01.2014 um 13:18:07 Uhr
Goto Top
Moin.

Ich kenne mich mit elevate, runasinvoker und jeglicher UAC-Problematik gut aus. Kenne aber Dein Programm nicht und die Art, wie ihr es zum Updaten bringt. Erklär doch mal kurz.

Normalerweise würde ich den Taskscheduler für Updates vorschlagen, den schert die UAC nicht, wenn man "mit höchsten Berechtigungen ausführen" im Task anhakt.
mc-doubleyou
mc-doubleyou 29.01.2014 um 15:49:14 Uhr
Goto Top
Hallo DerWoWusste (schön dich mal wieder zu lesen du IT Gott ;) )

Also wir haben ein Programm bei uns im Einsatz und das kann sich via FTP Zugriff selbst aktualisieren, genauer gesagt kann die start.exe die fms.exe aktualisieren.
Damit dieser Vorgang läuft muss ich, bei aktiver UAC natürlich das Programm elevated starten, was ich so machen
start "" Tools\Elevate.exe start.exe  
allerdings kommt dann wieder die Prompt
Benutzerkontensteuerung

Möchten Sie zulassen, dass durch das folgende Programm von einem unbekannten Herausgeber Änderungen an diesem Computer vorgenommen werden?
welches ich zwar schon mit
set __COMPAT-LAYER=RunAsInvoker
unterdrücken konnte allerdings nur als ich danach direkt die start.exe gestartet habe, seit ich Elevate ausführe ist das nicht mehr möglich.

Die so erstelle Konfiguration soll teil eines Master Images werden, soviel nur der Vollständigkeit halber.

Danke und LG mcdy
DerWoWusste
DerWoWusste 29.01.2014 um 15:54:38 Uhr
Goto Top
Du kannst die Start.exe über den Taskplaner starten mit der beschriebenen Option. Reicht schon.
mc-doubleyou
mc-doubleyou 29.01.2014 um 17:23:25 Uhr
Goto Top
Hallo DerWoWusste,

also ohne Elevate.exe direkt die start.exe starten über den Taskplaner?
Ist das dann Image sicher? Gibt also keine Lösung einer InvokerElevate.exe oder so?

Danke! und LG mcdy
DerWoWusste
DerWoWusste 29.01.2014 aktualisiert um 20:01:07 Uhr
Goto Top
Ist das dann Image sicher?
Was meinst Du damit?
keine Lösung einer InvokerElevate.exe oder so?
Nein, die beiden Ideen zu vereinen geht nicht, da das eine das Gegenteil des anderen bedeutet.
mc-doubleyou
mc-doubleyou 30.01.2014 um 11:21:48 Uhr
Goto Top
Hallo DerWoWusste

ob ich von der Installation dann ein Image ziehen kann und es dann auch auf anderen PCs funktioniert.

Nur für mein Verständnis warum ist das das Gegenteil?
Bisher verstehe ich es so:
- Elevate führt ein Programm mit den selben Rechten aus welche es auch hätte wenn man es mit "als Administrator ausführen" startet
- RunAsInvoker führt ein Programm so aus, dass der UAC Prompt unterdrückt wird

Die Lösung über den Taskplaner kann aber beides?

über CMD müsste sich die Aufgabe so erstellen lassen
schtasks /create /TN FMS /TR %path%\start.exe /RL Höchste
und so die passende Verknüpfung
schtasks /run /TN "FMS"  

Oder?

Danke!

LG mcdy
DerWoWusste
Lösung DerWoWusste 30.01.2014, aktualisiert am 07.02.2014 um 17:02:38 Uhr
Goto Top
Hi.

schtasks /create /TN FMS /TR %path%\start.exe /RL Höchste
Ich weiß nicht, ob die deutsche Version "höchste" akzeptiert, meine nimmt nur "highest", aber ja, davon spreche ich.
Zu Deinem Missverständnis: elevate führt Dinge mit den höchsten Rechten aus, die der Nutzer kriegen kann. Bei Mitgliedern der Admingruppe also mit Adminrechten.
runasinvoker ist wörtlich übersetzt "führe aus als der, der es startet" - eben nicht elevated. Warum gibt es dann runasinvoker und wo benutzt man es in Skripten? Dort, wo elevation schon vom Programm angefordert wird, man es aber nicht will!

ob ich von der Installation dann ein Image ziehen kann und es dann auch auf anderen PCs funktioniert.
Klar, warum nicht. Der Task ist ja nicht an die Hardware gekoppelt.
mc-doubleyou
mc-doubleyou 07.02.2014 um 17:03:08 Uhr
Goto Top
hab es nun doch ganz anders gelöst aber danke für deine tolle Hilfe
DerWoWusste
DerWoWusste 08.02.2014 um 12:07:09 Uhr
Goto Top
Gerne.
Nenn doch bitte noch Deine Lösung und deren Vorteile.
mc-doubleyou
mc-doubleyou 10.02.2014 um 18:10:50 Uhr
Goto Top
Die Lösung, für zumindest mein Problem, ist relativ simple.
Ich habe in meiner install.bat mittels "calcs" den Vollzugriff auf diesen einen Ordner auch für User erlaubt und per "setacl" (extra Tool) dann auch noch das schreiben in der Registry auf den einen Key. Somit macht der Benutzer selbst die Aktion und die Fehler bzw. UAC Meldungen kommen nicht.

Hauptproblem an der Lösung mit dem Taskplaner war das ich im User die geplanten Tasks von Admin nicht starten konnte und ich es auch nicht geschafft habe den Task per CMD zu generieren.

Evtl. nicht die perfekte Lösung aber für mich erfüllt sie ihren Zweck.
DerWoWusste
DerWoWusste 11.02.2014 aktualisiert um 14:45:24 Uhr
Goto Top
Deine Lösung ist gut.
Das mit dem Task geht so: man muss die Rechte auf den Task verändern. Und zwar Ausführ- und Leserechte für den/die Benutzer vergeben. Der Task liegt in c:\windows\system32\tasks.