当我在标准用户模式下运行此代码时,我会获得所有驱动器,包括网络驱动器。以管理员身份运行时,网络驱动器不会出现在列表中。是什么给了什么?
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#编写的。
答案 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 。