我希望能够扫描所有逻辑驱动器并获取所有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);
}
答案 0 :(得分:0)
拥有管理员权限并不保证对特定资源的访问权限。实际上,可以创建一个主动 拒绝 访问管理员用户/组资源的ACL。
管理员可以做的是take ownership资源,然后修改ACL以便访问可用。如果你想这样做,你可以,但这会改变文件的访问规则。