如何获得对Windows系统上所有文件的读取权限,无论如何?

时间:2015-09-17 20:19:34

标签: c# file-permissions

我希望能够扫描所有逻辑驱动器并获取所有exe / dll文件,以便在当前Windows机器上的所有程序集中输出所有.net类型/类,而不管操作系统版本如何。我运行wINDOWS 7,我有管理员权限(在代码中检查)并仍然被C:\Documents and Settings拒绝访问

我做错了什么?

bool aaa = AmIAdmin();
GetAllNet();

static Dictionary<string, object> GetAllNet()
{
    List<string> binaries = new List<string>();
    string[] drives = Directory.GetLogicalDrives();
    foreach (string dir in drives)
    {
        binaries.AddRange(Directory.GetFiles(dir, "*.dll", SearchOption.AllDirectories));
        binaries.AddRange(Directory.GetFiles(dir, "*.exe", SearchOption.AllDirectories));
    }

    return null;
}
static bool AmIAdmin()
{
    return new WindowsPrincipal(WindowsIdentity.GetCurrent())
                .IsInRole(WindowsBuiltInRole.Administrator);
}

1 个答案:

答案 0 :(得分:0)

拥有管理员权限并不保证对特定资源的访问权限。实际上,可以创建一个主动 拒绝 访问管理员用户/组资源的ACL。

管理员可以做的是take ownership资源,然后修改ACL以便访问可用。如果你想这样做,你可以,但这会改变文件的访问规则。