Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

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

01.01.2007
// When you create a file or directory, you become the owner of it. 
// With GetFileOwner you get the owner of a file.
 
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
 
GetFileOwner := 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;
 
GetFileOwner := True;
end;
 
procedure TForm1
.Button1Click(Sender: TObject);
var
 
Domain, Username: string;
begin
 
GetFileOwner('YourFile.xyz', domain, username);
 
ShowMessage(username + '@' + domain);
end;
 
// Note: Only works unter NT.

Взято с сайта https://www.swissdelphicenter.ch/en/tipsindex.php