Dan*_*ris 5 .net windows filesystems
我需要找出谁使用.NET创建了一个文件
我已经尝试过以下方法:
string FileLocation = @"C:\test.txt";
FileInfo droppedFile = new FileInfo(FileLocation);
FileSecurity fileSecurity = droppedFile.GetAccessControl();
IdentityReference identityReference = fileSecurity.GetOwner(typeof(NTAccount));
string userName = identityReference.Value;
Console.WriteLine(userName);
Run Code Online (Sandbox Code Playgroud)
所有这些返回的是"BUILTIN\Administrators"
我在这里做错了吗?因为当我在资源管理器中查看C:\时,所有者会显示正确的用户名,当我执行上面的代码时,它会返回"BUILTIN\Administrators"
哪个甚至不是域名和用户名,我认为它是一个安全组.
任何帮助赞赏.
如果用户是管理员,则他们创建的文件将被视为由整个管理员组拥有,而不是由单个用户拥有.
您可以在资源管理器的属性对话框中看到相同的行为.令人讨厌的是,除了没有让用户管理员之外,我认为没有任何解决方法.
编辑: 此Technet文章更详细地解释了这种行为.理由是Windows将所有管理员视为单个实体; 系统上的任何管理员都可以执行其他管理员可以执行的操作.
| 归档时间: |
|
| 查看次数: |
7819 次 |
| 最近记录: |