为什么我的映射网络驱动器没有出现在网络位置中?

时间:2016-05-11 09:39:17

标签: c# .net windows process process.start

我使用的是Windows 10.这是我映射网络驱动器的代码。

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.UseShellExecute = true;
p.StartInfo.Verb = "runas";
p.StartInfo.FileName = "net.exe";
p.StartInfo.Arguments = "use Z: " + dPath; //dPath has escaped characters
p.Start();

我尝试做的是尝试以管理员身份运行命令net.exe use Z: DPATH但是Z驱动器没有出现在文件资源管理器中,但是当我使用具有管理员权限的cmd运行完全相同的命令时,出现Z驱动器正确。

映射驱动器的证明

我的网络驱动器的映射如下所示(尝试手动重新映射时遇到此错误)只是它没有出现在文件资源管理器中的网络位置>这台电脑。

attemptingToMap

2 个答案:

答案 0 :(得分:1)

此行为是由UAC(用户帐户控制)引起的。以管理员身份登录Windows时there are two sessions created。一个具有管理员权限,一个没有。以编程方式映射驱动器时,您正在使用具有管理员权限的会话执行此操作。

但是,使用文件资源管理器查看网络位置时,您使用的是标准权限。对于映射驱动器,不共享管理员和标准权限。因此,管理员无法查看映射的驱动器,尽管它是使用管理员权限创建的。

解决方案1 ​​

  

单击“开始”,在“启动程序和文件”框中键入regedit,然后单击“确定”   然后按ENTER键。

     

找到并右键单击注册表子项   HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \政策\系统。

     

指向“新建”,然后单击“DWORD值”。

     

键入EnableLinkedConnections,然后按ENTER键。

     

右键单击“EnableLinkedConnections”,然后单击“修改”。

     

在“数值数据”框中,键入1,然后单击“确定”。

     

退出注册表编辑器,然后重新启动计算机。

解决方案2

Run File Explorer as administrator

  

右键单击资源管理器并选择“运行方式”   管理员“它没有启动带有管理员的Windows资源管理器   权利。 Windows Vista / 7/8/10资源管理器包含一个特殊功能   阻止此类请求。

     

要禁用它,请启动regedit.exe并转到以下键:

     

HKEY_CLASSES_ROOT \ AppID {CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}

     

右键单击“权限”并将您的用户设置为密钥的所有者   给你当前的用户写作权限。

     

接下来,删除或重命名值RunAs。现在升高了 - 没有升级   Explorer Factory已禁用,您可以使用admin启动Explorer   权利。

解决方案3

如果以上操作不起作用,disable your UAC (User Account Control)进入用户帐户控制设置并将滑块移至从不通知

此外,如果您安装了专业版,企业版或旗舰版Windows,则需要在名为本地安全策略的管理工具中查看程序,并在<中禁用与UAC相关的所有策略。 strong>安全设置&gt;地方政策&gt;安全选项(位于列表的底部15个政策中)

答案 1 :(得分:1)

它帮助我通过任务管理器以管理员权限重新启动explorer.exe。