Delphi-Help

Главная Статьи Файлы Как прочитать владельца файла (NTFS)?

Как прочитать владельца файла (NTFS)?

Оцените материал
(0 голосов)


Как прочитать владельца файла (NTFS)?

function GetFileOwner( FileName: string; var Domain, Username: string ): boolean;
var
  SecDescr: PSecurityDescriptor;
  SizeNeeded, SizeNeeded2: DWORD;
  OwnerSID: PSID;
  OwnerDefault: BOOL;
  OwnerName, DomainName: PChar;
  OwnerType: SID_NAME_USE;
begin
   Result := false;
   GetMem( SecDescr, 1024 );
   GetMem( OwnerSID, SizeOf( PSID ) );
   GetMem( OwnerName, 1024 );
   GetMem( DomainName, 1024 );
   try
      if not GetFileSecurity( PChar( FileName ),
      OWNER_SECURITY_INFORMATION,
      SecDescr, 1024, SizeNeeded ) then
         Exit;
      if not GetSecurityDescriptorOwner( SecDescr, OwnerSID, OwnerDefault) then
         Exit;
      SizeNeeded := 1024;
      SizeNeeded2 := 1024;
      if not LookupAccountSID( nil, OwnerSID, OwnerName,
      SizeNeeded, DomainName, SizeNeeded2, OwnerType ) then
         Exit;
      Domain := DomainName;
      Username := OwnerName;
   finally
      FreeMem( SecDescr );
      FreeMem( OwnerName );
      FreeMem( DomainName );
   end;
   Result := true;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  Domain, Username: string;
begin
   GetFileOwner( 'C:\имя.файла', Domain, Username );
   ShowMessage( Username + '@' + Domain );
end;
Прочитано 5577 раз

Авторизация



Счетчики