Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# get file owner in Windows

Tags:

c#

file

owner

I want to get the owner of a file using the code below

File.GetAccessControl(filename).GetOwner(typeof(SecurityIdentifier)).Translate(typeof(NTAccount))

However, it gives me BUILTIN\Administrators as the owner, but I can see in the file explorer the owner is Domain\MyUserName.

Why this happens and how can fix it?

Edit: This link explain what happen. It is to do with the files created by users in the Administrator Group and how Windows handle the owner of these files.

like image 861
Helic Avatar asked Jul 31 '15 08:07

Helic


1 Answers

I was able to get the actual owner of a file by this... not sure if this is what you need or not. System.IO.FileInfo Fi = new System.IO.FileInfo(@"path2file");

MessageBox.Show(Fi.GetAccessControl().GetOwner(typeof(System.Security.Principal.SecurityIdentifier)).Translate(typeof(System.Security.Principal.NTAccount)).ToString());

like image 169
Dustin Avatar answered Oct 03 '22 00:10

Dustin