AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Adminrechte - Programmstart trotz Ablehnen

Ein Thema von Benmik · begonnen am 23. Mai 2020 · letzter Beitrag vom 25. Mai 2020
Antwort Antwort
Benmik

Registriert seit: 11. Apr 2009
358 Beiträge
 
Delphi 10.3 Rio
 
#1

Adminrechte - Programmstart trotz Ablehnen

  Alt 23. Mai 2020, 16:28
Man kann ein Programm per Manifest ja so konfigurieren, dass es Adminrechte anfordert, wobei die UAC erscheint. Verweigert man aber die Rechte mittels "Nein", startet das ganze Programm nicht mehr.
Gibt es auch eine Möglichkeit, dass bei "Nein" das Programm einfach ohne Adminrechte startet? Ich weiß, dass es diverse Möglichkeiten zur Abfrage gibt, aber ich suche nach einer 1-Klick-Lösung.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.316 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Adminrechte - Programmstart trotz Ablehnen

  Alt 23. Mai 2020, 18:19
Nein, nicht direkt, denn da dein Programm dabei nichts zu bestimmen hat, bzw. bei NEIN wird dein Programm nicht ausgeführt und kann somit nichts anderes machen.

https://docs.microsoft.com/de-de/vis...executionlevel

Level=asInvoker : so wenig wie möglich
Level=highestAvailable : so viel wie möglich
Level=requireAdministrator : unbedingt ganz viel

uiAccess=false: ohne den Benutzer zu fragen (nimm das was geht, wenn möglich)

Zitat:
ClickOnce-Anwendungen können nur mit dem Wert asInvoker installiert werden. Bei der Installation mit anderen Werten tritt ein Fehler auf.


Du kannst aber zwei EXEn erstellen.
* Eine mit Level=asInvoker (oder highestAvailable) und uiAccess=false
* und die startet, bzw. versucht die Andere zu starten (requireAdministrator oder highestAvailable und mit uiAccess=True)
* wenn das ging, beendet sie sich selbst und wenn nicht, dann arbeitet sie
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (23. Mai 2020 um 18:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
16.679 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Adminrechte - Programmstart trotz Ablehnen

  Alt 23. Mai 2020, 18:28
Oder die Exe ist ohne Adminrechte im Manifest.
Beim start startest du dich nochmal mit "runas".
Startet dann diese neue Exe "durch", so kannst die zuerst gestartete Exe sich beenden.
Wenn der Start der Exe mit "runas" fehlschlägt, startet sie selbst "durch".

Machen andere Programme wie "TeamViewer" auch.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
358 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Adminrechte - Programmstart trotz Ablehnen

  Alt 23. Mai 2020, 20:32
Danke euch beiden. An zwei Instanzen und "RunAs" hatte ich gedacht, aber mit einer zusätzlichen Abfrage etc., die ich vermeiden wollte. Aber so wird das Ziel ja auch erreicht, dass es für den Anwender keinen Unterschied dazu gibt, dass das Manifest/UAC das Programm durchlassen würde.
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
358 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Adminrechte - Programmstart trotz Ablehnen

  Alt 23. Mai 2020, 20:58
Ich würde gern eine Antwort nachschieben:

Die Adminrechte braucht mein Programm nur zu besonderen Gelegenheiten, es muss nicht das ganze Programm die ganze Zeit mit Adminrechten laufen. Jetzt habe ich hier von Alex eine schöne Möglichkeit gefunden, fallweise die Rechte anzufordern. Allerdings kann das mehrfach während der Laufzeit vorkommen.

Wie könnte eine Konstruktion aussehen, dass ich mir einmal eine Erlaubnis hole, die dann für mehrere Ausführungen eines externen Prozesses gültig wäre?
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.229 Beiträge
 
#6

AW: Adminrechte - Programmstart trotz Ablehnen

  Alt 25. Mai 2020, 11:50
Wie könnte eine Konstruktion aussehen, dass ich mir einmal eine Erlaubnis hole, die dann für mehrere Ausführungen eines externen Prozesses gültig wäre?
So wie es klingt, suchst du einen Windowsdienst. Damit kannst du dir sogar die erste Abfrage ersparen. Dienste existieren um einem unprivilegierten Prozeß scheibchenweise privilegierte Aktionen zu ermöglichen. Die Kommunikation läuft dann üblicherweise über die bekannten IPC-Mechanismen (bspw. Pipes).

Alternativ könnte man natürlich den mit erhöhten Rechten (runas) laufenden Prozeß laufenlassen und nur "verstecken" und dann wieder hervorholen, sobald er benötigt wird. Aber da bist du dann eben schon sehr dicht bei dem was Dienste ohnehin leisten sollen.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.316 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Adminrechte - Programmstart trotz Ablehnen

  Alt 25. Mai 2020, 14:45
Oder man speichert/clont sich das Token vom ersten Mal und benutzt es für die nachfolgenen Berechtigungsanforderungen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
358 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Adminrechte - Programmstart trotz Ablehnen

  Alt 25. Mai 2020, 18:13
@Assarbad: Dienst ist ein bisschen überdimensioniert. Versteckter Prozess: Den müsste ich dann über IPC ansteuern, vermutlich?

@Himitsu: Klingt sehr gut, aber von welchem Token ist die Rede und wie soll das gehen?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf