AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Anwendung mit Systemrechten starten oder diese Erlangen?
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendung mit Systemrechten starten oder diese Erlangen?

Offene Frage von "richard_boderich"
Ein Thema von richard_boderich · begonnen am 9. Apr 2008 · letzter Beitrag vom 9. Apr 2008
Antwort Antwort
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#1

Anwendung mit Systemrechten starten oder diese Erlangen?

  Alt 9. Apr 2008, 16:53
Hallo allerseits!

Ich möchte meine Anwendung mit gern mit Systemrechten starten, oder diese Erlangen, undzwar ohne einen Dienst. Im Forum hab ich diesen Code gefunden.

Delphi-Quellcode:
function EnablePrivilege(const Privilege: string; fEnable: Boolean; out PreviousState: Boolean): DWORD;
var
  Token : THandle;
  NewState : TTokenPrivileges;
  Luid : TLargeInteger;
  PrevState : TTokenPrivileges;
  Return : DWORD;
begin
  SetLastError(0); // Clear last system error state
  PreviousState := True;
  if (GetVersion() > $80000000) then // Win9x
    Result := ERROR_SUCCESS
  else // WinNT
  begin
    if OpenProcessToken(GetCurrentProcess(), MAXIMUM_ALLOWED, Token) then
    begin
      try
        if LookupPrivilegeValue(nil, PChar(Privilege), Luid) then
        begin
          NewState.PrivilegeCount := 1;
          NewState.Privileges[0].Luid := Luid;
          if fEnable then
            NewState.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
          else
            NewState.Privileges[0].Attributes := 0;
          if AdjustTokenPrivileges(Token, False, NewState, SizeOf(TTokenPrivileges), PrevState, Return) then
          begin
            PreviousState := (PrevState.Privileges[0].Attributes and SE_PRIVILEGE_ENABLED <> 0);
          end;
        end;
      finally
        CloseHandle(Token);
      end;
    end;
    Result := GetLastError;
  end;
end;
Nun hab ich da mal ein paar Überlegungen und Fragen zu, berichtigt mich bitte wenn ich falsch liege.

1. Da mein Programm eh immer mit Adminrechten gestartet wird, besitzt mein Programm auch die Rechte seine Privilegien zu ändern?

und..

2. Hatt jemand soetwas wie eine Parameterliste für diese Funktion? Ich meine was muss ich in der String Const "Privilege" an diese Funktion übergeben?

z.B. für...

Systemrechte -> ?
Adminrechte -> ?
Benutzterrechte ->?

usw.

Vielleicht kann der Dezipaitor da helfen?

mfG Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Anwendung mit Systemrechten starten oder diese Erlangen?

  Alt 9. Apr 2008, 17:06
Mit dieser Funktion kannst du nur deaktivierte Privilegien aktivieren, die bereits vorhanden sind. Dazu brauchst du auch keine Admin-Rechte. Nicht vorhandene Privilegien kannst du dir nicht verschaffen.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#3

Re: Anwendung mit Systemrechten starten oder diese Erlangen?

  Alt 9. Apr 2008, 18:07
Also mittels CACLS kann ich mir kann ich mir Zugriff verschaffen! Also sollte es doch möglich sein oder?

mfG Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Anwendung mit Systemrechten starten oder diese Erlangen?

  Alt 9. Apr 2008, 18:08
Von CACLs (Was ist das?) hast du nichts erwähnt. Worauf kannst du dir Zugriff verschaffen?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#5

Re: Anwendung mit Systemrechten starten oder diese Erlangen?

  Alt 9. Apr 2008, 18:16
Wenn ich als Admin das Komandozeilentool CACLS entsprechend Anwende, bekomme ich Zugriff auf den Ordner. man könnte jetzt mit Shellexecute arbeiten
und so den Zugriff auf diesen Ordner gewähren. Jedoch denke ich das es dort eine elegantere Lösung geben muss.

mfg Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Anwendung mit Systemrechten starten oder diese Erlangen?

  Alt 9. Apr 2008, 18:24
Hier geht es in erster Linie um DACLs, nicht Privilegien. "Admin-Rechte" sind kein Privileg. Privilegien sind solche Dinge wie "herunterfahren dürfen" o.Ä. Einige davon hat ein Admin normalerweise, andere haben gewöhnlich alle.

Hast du als Admin Debug-Rechte? Damit ist das trivial. Andernfalls weniger.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#7

Re: Anwendung mit Systemrechten starten oder diese Erlangen?

  Alt 9. Apr 2008, 19:06
Es geht um ACL's

mfg Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Anwendung mit Systemrechten starten oder diese Erlangen?

  Alt 9. Apr 2008, 19:25
Zitat von Apollonius:
Hast du als Admin Debug-Rechte?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  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 04:57 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