C#Environment.GetDrives()在管理员模式下无法正常工作

时间:2011-01-17 15:05:20

标签: c# windows-7 uac elevated-privileges

当我在标准用户模式下运行此代码时,我会获得所有驱动器,包括网络驱动器。以管理员身份运行时,网络驱动器不会出现在列表中。是什么给了什么?

List<string> drives = Environment.GetLogicalDrives().ToList();
StringBuilder driveList = new StringBuilder();

foreach (string drive in drives)
    driveList.AppendLine(drive);

MessageBox.Show(driveList.ToString());

这是在Windows 7下运行。网络驱动器来自Novell。代码是使用.NET 4框架用C#编写的。

1 个答案:

答案 0 :(得分:6)

这是正常现象,因为使用提升的权限运行的进程无法使用Windows Vista网络映射驱动器(请参阅 Programs may be unable to access some network locations after you turn on User Account Control in Windows Vista or in Windows 7 (KB 937624) )。知识库文章中的解决方法意味着注册表编辑和计算机重新启动。

有关详细信息,另请参阅博客文章 Mapped Network Drives with UAC on Windows Vista