![]() |
Arbeitet der User mit eingeschr. Rechten?
Hallo,
kann man irgendwie ermitteln ob der Nutzer mit eingeschr. Rechten arbeitet, ohne das irgendeine Fehlermeldung aufpoppt? |
Re: Arbeitet der User mit eingeschr. Rechten?
Ermittele, ob er Administrator ist. Ist er es nicht, verfügt er nur über eingeschränkte Rechte. Zum Ermitteln, ob er Administrator ist, gibt es hier im Forum genug Code.
|
Re: Arbeitet der User mit eingeschr. Rechten?
Delphi-Quellcode:
Das würds auch tun oder?
var
f:textfile; begin assignfile(f,'C:\windows\abc.txt'); try begin rewrite(f); writeln(f,'dfdfdf'); closefile(f); end except showmessage('Nur User');end; Im Forum finde ich nichts um zu ermitteln, ob der user Admin ist. |
Re: Arbeitet der User mit eingeschr. Rechten?
Also, anstatt sinnlose Dateien auf C:\ zuerzeugen... (Windows könnte auch auf einem anderen Laufwerk installiert sein)
Nimm' besser diese Methode:
Delphi-Quellcode:
Viel Spaß,
function IsAdmin: Boolean;
const SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5)); SECURITY_BUILTIN_DOMAIN_RID = $00000020; DOMAIN_ALIAS_RID_ADMINS = $00000220; var hAccessToken: THandle; ptgGroups: PTokenGroups; dwInfoBufferSize: DWORD; psidAdministrators: PSID; x: Integer; bSuccess: BOOL; begin Result := False; bSuccess:=False; ptgGroups:=nil; psidAdministrators:=nil; try bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True, hAccessToken); if not bSuccess then begin if GetLastError = ERROR_NO_TOKEN then bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hAccessToken); end; if bSuccess then begin GetMem(ptgGroups, 1024); bSuccess := GetTokenInformation(hAccessToken, TokenGroups, ptgGroups, 1024, dwInfoBufferSize); if bSuccess then begin AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, psidAdministrators); {$R-} for x := 0 to ptgGroups.GroupCount - 1 do if EqualSid(psidAdministrators, ptgGroups.Groups[x].Sid) then begin Result := True; Break; end; {$R+} end; end; finally if bSuccess then CloseHandle(hAccessToken); if Assigned(ptgGroups) then FreeMem(ptgGroups); if Assigned(psidAdministrators) then FreeSid(psidAdministrators); end; end; Chris |
Re: Arbeitet der User mit eingeschr. Rechten?
Jein, das ist wie Einparken nach Gehör :-D
|
Re: Arbeitet der User mit eingeschr. Rechten?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Hat nur einen kleinen Nachteil: Die Option unten im Screenshot wird nicht erkannt, was meine Textmethode dann doch tut. |
Re: Arbeitet der User mit eingeschr. Rechten?
Zitat:
Luckie hat Dir doch schon gesagt wie Du es einfach und sicher rausbekommst. Gruß Der Unwissende |
Re: Arbeitet der User mit eingeschr. Rechten?
Zitat:
hab den beitrag vorher nochmal editiert |
Re: Arbeitet der User mit eingeschr. Rechten?
Zitat:
![]() Suchbegriff: ![]() In dem Thread wird auch erklärt, wie sich das mit deinem Screenshot verhält. |
Re: Arbeitet der User mit eingeschr. Rechten?
Hi,
der CODE von CK_CK funktioniert bei mir irgendwie nicht. Dieser Code zur Prüfung war der einzige der unter Delphi 3 läuft. Allerdings meldet er bei einem Domänen-Benutzer der lokal Admin-Rechte hat, dass dieser ein normaler User wäre. Gruß Thomas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz