Treesize 可以查看它无权访问的文件夹和文件

ada*_*rth 5 c# windows permissions

我在一台工作机器上运行的程序出现问题。

\n\n

Treesize pro 是一个程序,它将扫描一个区域(C:\\、\\\\nasdrive\\home 等)并为您提供树视图以及该区域的其他信息。

\n\n

现在我在具有管理员权限的帐户上运行该程序,当我午餐时,它会弹出用户帐户控制。

\n\n

但是,如果我搜索我的管理员帐户无权访问的区域(有一些),它将正常工作并显示文件、文件夹、大小、修改和创建日期的所有信息。我无法打开这些文件,但可以看到它们的名称并进入子文件夹。如果我在资源管理器中尝试这个,我会得到access denied.

\n\n

我尝试使用我编写的 C# 脚本来执行此操作,但是如果我尝试执行 a,Directory.getDirectories();Directory.GetFiles();即使我以管理员身份运行我的程序(右键单击以管理员身份运行),它也会给出access denied在 Catch 块中给出命令。

\n\n

我真的很想知道 Treesize 如何管理列出我的帐户无权访问的文件夹、子文件夹和文件。

\n\n

谢谢

\n

Nik*_*iko 3

TreeSize 通过 NTFS 备份 API 读取数据(请参阅https://learn.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/back-up-files-and-directories)。

来自treesize的注释: https ://manuals.jam-software.de/treesize/EN/notesonntfs.html

访问控制列表 可以限制用户访问文件和文件夹的方式。人们可以授予或拒绝其他用户或组的某些权利[...]。这样,人们甚至可以拒绝管理员访问文件和文件夹。如果管理员尝试访问 Windows 资源管理器中的文件夹,但所有者拒绝任何其他用户读取访问权限,则会显示“拒绝访问”错误消息。但是,如果您以管理员或有权执行备份的用户身份登录,TreeSize 就能够扫描此类文件夹(可以在“控制面板 > 管理工具 > 本地安全策略”中更改此选项,并使用用户Windows 编辑器)。

如需深入了解访问权限,请访问https://learn.microsoft.com/en-us/windows/win32/fileio/file-security-and-access-rights

SE_BACKUP_NAME 和 SE_RESTORE_NAME 访问权限是专门为提供备份应用程序的能力而创建的。如果这些权限已被授予并在备份应用程序进程的访问令牌中启用,则它可以调用 CreateFile 打开文件或目录进行备份,并将标准 READ_CONTROL 访问权限指定为 dwDesiredAccess 参数的值。但是,要将调用进程标识为备份进程,对 CreateFile 的调用必须在 dwFlagsAndAttributes 参数中包含 FILE_FLAG_BACKUP_SEMANTICS 标志。这将允许备份应用程序进程打开您的文件并覆盖标准安全检查。

HANDLE hFile = CreateFile( fileName,                   // lpFileName
                       READ_CONTROL,               // dwDesiredAccess
                       0,                          // dwShareMode
                       NULL,                       // lpSecurityAttributes
                       OPEN_EXISTING,              // dwCreationDisposition
                       FILE_FLAG_BACKUP_SEMANTICS, // dwFlagsAndAttributes
                       NULL );                     // hTemplateFile
Run Code Online (Sandbox Code Playgroud)

您可以找到更多信息