AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi CodeSite Studio 5.3.2 funktioniert plötzlich nur mehr mit Administrator privileges!
Thema durchsuchen
Ansicht
Themen-Optionen

CodeSite Studio 5.3.2 funktioniert plötzlich nur mehr mit Administrator privileges!

Ein Thema von PeterPanino · begonnen am 20. Jul 2018 · letzter Beitrag vom 13. Aug 2018
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: CodeSite Studio 5.3.2 funktioniert plötzlich nur mehr mit Administrator privilege

  Alt 22. Jul 2018, 19:04
Oder kennt jemand einen Trick, mit dem man das auf eine andere einfachere Weise erreichen könnte?
Per Commandline Aufruf sollte das möglich sein, hier ein Batch Auszug:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: CodeSite Studio 5.3.2 funktioniert plötzlich nur mehr mit Administrator privilege

  Alt 22. Jul 2018, 22:05
Per Commandline Aufruf sollte das möglich sein, hier ein Batch Auszug:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"
Hallo KodeZwerg,

vielen Dank für deinen genialen Gedanken!

Leider funktioniert es nicht so, wie ich es mir gewünscht habe.

Also, ich habe eine Batch-Datei "test.bat" mit diesem Inhalt erstellt:

Code:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" F:\delphi\_test\StartUnelevatedProgramFromElevatedProgram\Win32\Debug\StartUnelevatedProgramFromElevatedProgram.exe"
Wenn ich diese Batch-Datei doppelklicke, wird wie gewünscht mein Programm gestartet. So weit so gut.

Nun versuche ich mal, das Ganze von meinem elevated Programm aus zu starten:

Delphi-Quellcode:
procedure TForm3.btnRestartNotElevatedClick(Sender: TObject);
begin
  JclShell.ShellExecEx('F:\delphi\_test\StartUnelevatedProgramFromElevatedProgram\Win32\Debug\test.bat');
  Close;
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
  // wer MiTeC nicht hat, einfach einen anderen Code verwenden oder auskommentieren:
  if MiTeC_Routines.IsElevated then
    Self.Caption := 'Elevated'
  else
    Self.Caption := 'NOT Elevated';
end;
Ich starte also meine App mit höheren Rechten: KontextMenü im Windows-Explorer -> "Run as Administrator". Nach dem UAC prompt started dann die App elevated.

Dann klicke ich auf den Button: Das Programm startet die Batch-Datei, schließt sich selbst, und die App wird neu gestartet. Aber leider wieder elevated!

Im Anhang ist der Source-Code:

StartUnelevatedProgramFromElevatedProgram.zip
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.033 Beiträge
 
Delphi 12 Athens
 
#13

AW: CodeSite Studio 5.3.2 funktioniert plötzlich nur mehr mit Administrator privilege

  Alt 22. Jul 2018, 22:20
Das Programm startet die Batch-Datei, schließt sich selbst, und die App wird neu gestartet. Aber leider wieder elevated!
Das ist auch nicht verwunderlich, da AsInvoker ja die Rechte des aktuellen Benutzers verwendet. Der ist aber in dem Moment nun mal Admin.
Zitat:
asInvoker – Run with limited user rights unless specifically elevated or called from an already elevated process
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: CodeSite Studio 5.3.2 funktioniert plötzlich nur mehr mit Administrator privilege

  Alt 22. Jul 2018, 22:33
Vielen Dank, Uwe.

Gibt es also keinen Trick, von einem elevated Programm aus sich selbst als nicht-elevated neu zu starten?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.033 Beiträge
 
Delphi 12 Athens
 
#15

AW: CodeSite Studio 5.3.2 funktioniert plötzlich nur mehr mit Administrator privilege

  Alt 23. Jul 2018, 08:17
Gibt es also keinen Trick, von einem elevated Programm aus sich selbst als nicht-elevated neu zu starten?
Mir ist zumindest kein offizielles Verfahren bekannt.

In der madCollection gibt es in madKernel aber eine Funktion NewProcessAsUser. Vielleicht kann man damit was erreichen, aber ich kann das gerade nicht ausprobieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: CodeSite Studio 5.3.2 funktioniert plötzlich nur mehr mit Administrator privilege

  Alt 23. Jul 2018, 09:09
Ich nutze den Befehl von oben in meiner Registry, hab da ein "Run without Rights" angelegt, das Gegenstück zu "Run as Admin" sozusagen.

Wenn das Ziel UAC beinhaltet und setzen will, kann sein das es dann generell nicht fruchtet.

Was mir noch einfällt wäre der Befehl RUNAS.
Da müsstest Du eventuell erst Richtlinien selber basteln, testen ob das nötig ist kannst Du so:
Öffne eine Commandline (mit/ohne Rechte sollte egal sein)
Tippe "runas /showtrustlevel" ein und drück Eingabetaste.
Je nachdem was Dir da Angezeigt wird kannst Du nun per "runas /trustlevel" switch etwas mit von Dir bestimmten Rechten ausführen. Auch aus Delphi heraus ohne batch oder der gleichen. Wichtig ist halt das eine Richtlinie existiert.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.182 Beiträge
 
Delphi 12 Athens
 
#17

AW: CodeSite Studio 5.3.2 funktioniert plötzlich nur mehr mit Administrator privilege

  Alt 23. Jul 2018, 09:27
Gibt es also keinen Trick, von einem elevated Programm aus sich selbst als nicht-elevated neu zu starten?
Mir ist zumindest kein offizielles Verfahren bekannt.

In der madCollection gibt es in madKernel aber eine Funktion NewProcessAsUser. Vielleicht kann man damit was erreichen, aber ich kann das gerade nicht ausprobieren.
MSDN-Library durchsuchenCreateProcessWithLogonW, MSDN-Library durchsuchenCreateProcessAsUser
oder selbst SecurityAttribute besorgen und MSDN-Library durchsuchenCreateProcess.
Problem dabei ist, dass dort wohl überall ohne das UAC der User mit den vollen angeforderten Rechten gestartet wird.

Eventuell über die Aufgabenplanung versuchen? (dort eintragen, dass der Prozess in aktuelle Zeit + x Sekunden gestartet werden soll)

Ich weiß jetzt nicht welche Rechte das UAC standardmäßig deaktiviert ... eventuell kann man seine eigenen Berechtigungen klonen, jene Berechtigungen entfernen und dann damit den Prozess starten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: CodeSite Studio 5.3.2 funktioniert plötzlich nur mehr mit Administrator privilege

  Alt 13. Aug 2018, 04:33
Eine funktionierende Lösung wäre es über den Task Scheduler laufen zu lassen.
Vielleicht mit dem VCL Task Scheduler als Hilfe, ob der das macht was ich meine habe ich selbst noch nicht getestet, aber rein von der Logik her funktioniert es so (mit dem Windows Task Scheduler).
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:23 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