AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Privilegien setzen

Ein Thema von runger · begonnen am 10. Jun 2005 · letzter Beitrag vom 10. Jun 2005
Antwort Antwort
runger
(Gast)

n/a Beiträge
 
#1

Privilegien setzen

  Alt 10. Jun 2005, 07:04
Hallo,
ich habe Luckies Funktion zur Änderung der Privilegien ausprobiert.

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
  PreviousState := True;
  if (GetVersion() > $80000000) then
    // Win9x
    Result := ERROR_SUCCESS
  else
  begin
    // WinNT
    if not OpenProcessToken(GetCurrentProcess(), MAXIMUM_ALLOWED, Token) then
      Result := GetLastError()
    else
    try
      if not LookupPrivilegeValue(nil, PChar(Privilege), Luid) then
        Result := GetLastError()
      else
      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 not AdjustTokenPrivileges(Token, False, NewState,
          SizeOf(TTokenPrivileges), PrevState, Return) then
          Result := GetLastError()
        else
        begin
          Result := ERROR_SUCCESS;
          PreviousState :=
            (PrevState.Privileges[0].Attributes and SE_PRIVILEGE_ENABLED <> 0);
        end;
      end;
    finally
      CloseHandle(Token);
    end;
  end;
end;



procedure TForm1.Button1Click(Sender: TObject);
var a:boolean;x:dword;
begin
  x:=EnablePrivilege('SE_SYSTEMTIME_NAME',false,a);
end;
Ich werde immer hier rausgeworfen. Egal was ich an Privileg eingebe.
Was mach ich falsch?

Delphi-Quellcode:
    try
      if not LookupPrivilegeValue(nil, PChar(Privilege), Luid) then
        Result := GetLastError()
      else
Rainer
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Privilegien setzen

  Alt 10. Jun 2005, 09:29
Hallo. Ich habe eben mal in die Win32-API-Tutorials geguckt, weil es dort im Kapitel "Systemfunktionen/Datum und Uhrzeit" einen ähnlichen Beitrag gibt. Dort sieht das aber so aus:
Delphi-Quellcode:
const
  SE_SYSTEMTIME_NAME = 'SeSystemtimePrivilege';

{ ... }

if(SetPrivilege(SE_SYSTEMTIME_NAME,true)) then
  SetLocalTime(st);
SE_SYSTEMTIME_NAME ist bloß eine Konstante, wie du siehst. Das tatsächliche Privileg heißt anders. Wirf am besten mal einen Blick in die Headerdateien (*.h) des PSDK.

Wobei ich dir aber jetzt schon sagen kann, dass das Setzen der Uhrzeit oder des Datums nicht von den Rechten abhängt. Da behauptet diese veraltete Win32.hlp etwas Falsches. Das weiß ich, weil besagter Teil aus den Tutorials aus meiner Feder stammt. Tatsächlich dürfen nur Administratoren und Hauptbenutzer die Uhrzeit ändern. Das findest du in den Richtlinien. Notfalls musst du deinen Benutzer da noch eintragen.
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#3

Re: Privilegien setzen

  Alt 10. Jun 2005, 10:04
Hallo Mathias,

danke für deinen Beitrag. Ich hab das ganze auch nur als Spielerei gesehen, mir kams überhaupt nicht auf die Zeit an. Ich wollte nur wissen wie man sowas macht.

Rainer
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#4

Re: Privilegien setzen

  Alt 10. Jun 2005, 10:07
Hallo Mathias,

das wars!

Danke
Rainer
  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 13:19 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