AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi ShellExecute ohne erweiterte Rechte
Thema durchsuchen
Ansicht
Themen-Optionen

ShellExecute ohne erweiterte Rechte

Ein Thema von sjansen · begonnen am 1. Sep 2022 · letzter Beitrag vom 8. Sep 2022
Antwort Antwort
sjansen

Registriert seit: 16. Okt 2019
Ort: Siegen
9 Beiträge
 
Delphi 10.4 Sydney
 
#1

ShellExecute ohne erweiterte Rechte

  Alt 1. Sep 2022, 13:43
Hi,
ich habe folgendes Problem:
- ich starte einen Updater, welcher erweiterte Rechte erfordert, da er auch in %programfiles% schreibt
-> aufruf via ShellExecute mit 'runas'
-> Der Benutzer hat keine Adminberechtigungen -> es kommt die UAC-Credential-Aufforderung von Windows
- der Admin gibt die Credentials ein
- Updater beendet die Hauptanwendung, Update wird durchgeführt und soll nach fertigstellung die zuvor gestartete Hauptentwendung wieder starten
- Die Anwendung wird im Benutzerkontext des Admins gestartet

Jemand eine Idee wie ich die Anwendung im vorherigen Benutzerkontext starten kann?
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: ShellExecute ohne erweiterte Rechte

  Alt 1. Sep 2022, 13:58
Statt:
- ich starte einen Updater, welcher erweiterte Rechte erfordert
Besser:
- ich starte einen Updater, welcher keine erweiterte Rechte erfordert
- dieser Updater startet einen Updater, welcher erweiterte Rechte erfordert
(Bei mir sind beide Updater die selbe exe)
  Mit Zitat antworten Zitat
Achim Kalwa

Registriert seit: 2. Apr 2005
Ort: Lienen
110 Beiträge
 
Delphi 12 Athens
 
#3

AW: ShellExecute ohne erweiterte Rechte

  Alt 1. Sep 2022, 20:02
Hi,
Jemand eine Idee wie ich die Anwendung im vorherigen Benutzerkontext starten kann?
Ich habe vor langer Zeit mal dies hier gefunden:
ShellExecuteUnelevated
(der Code ist nicht von mir).
Achim
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#4

AW: ShellExecute ohne erweiterte Rechte

  Alt 1. Sep 2022, 22:35
Statt:
- ich starte einen Updater, welcher erweiterte Rechte erfordert
Besser:
- ich starte einen Updater, welcher keine erweiterte Rechte erfordert
- dieser Updater startet einen Updater, welcher erweiterte Rechte erfordert
(Bei mir sind beide Updater die selbe exe)
Ich vermute dass dein Updater 1 der ja noch unelevated ist nach Ausführen des Updater 2 dann
das installierte Programm starten soll?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: ShellExecute ohne erweiterte Rechte

  Alt 1. Sep 2022, 22:47
Ich hatte mal ein solches Projekt angefangen, aber nicht fortgesetzt. Grundsätzlich klappte es damals aber:
https://www.delphipraxis.net/139102-...-projekte.html
Heute würde ich das sicher nicht mehr so schreiben, aber das kennt vermutlich jeder Entwickler...

Die grundlegende Idee ist, dass man eine Instanz ohne Adminrechte weiter laufen lässt während das Update läuft, und diese Instanz dann eine neue Version von sich selbst ebenfalls ohne Adminrechte startet. Sie bleibt ja im zuvor verwendeten Benutzerkontext. Dafür müssen die Exen natürlich untereinander kommunizieren.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: ShellExecute ohne erweiterte Rechte

  Alt 2. Sep 2022, 13:59
Statt:
- ich starte einen Updater, welcher erweiterte Rechte erfordert
Besser:
- ich starte einen Updater, welcher keine erweiterte Rechte erfordert
- dieser Updater startet einen Updater, welcher erweiterte Rechte erfordert
(Bei mir sind beide Updater die selbe exe)
Ich vermute dass dein Updater 1 der ja noch unelevated ist nach Ausführen des Updater 2 dann
das installierte Programm starten soll?
Ja, genau
  Mit Zitat antworten Zitat
THY4243

Registriert seit: 15. Dez 2012
Ort: München - Untermenzing
45 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: ShellExecute ohne erweiterte Rechte

  Alt 2. Sep 2022, 14:32
Es gab da mal so eine ähnliche Frage: https://www.delphipraxis.net/182440-...-rechte-2.html
  Mit Zitat antworten Zitat
sjansen

Registriert seit: 16. Okt 2019
Ort: Siegen
9 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: ShellExecute ohne erweiterte Rechte

  Alt 8. Sep 2022, 13:59
Hi,
Jemand eine Idee wie ich die Anwendung im vorherigen Benutzerkontext starten kann?
Ich habe vor langer Zeit mal dies hier gefunden:
ShellExecuteUnelevated
(der Code ist nicht von mir).
Danke euch!
hab diese Lösung genutzt und sie reicht für meine Zwecke. So muss ich die Anwendung nicht groß umbauen.

Lg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz