提升应用中未显示映射网络驱动器

时间:2020-01-09 10:46:34  来源:igfitidea点击:

Windows OSs(自Vista以来)的一个重要安全改进是 用户帐户控制(UAC)功能。每次应用程序尝试对系统进行任何更改时,用户帐户控制都会提示用户进行批准。UAC的一个副作用是无法访问映射的网络驱动器(通过

net use

)从以提升(特权)模式运行的应用程序(以管理员身份运行)。这意味着,当我们以提升的权限运行命令提示符或者文件管理器(如Total Commander)时,它们不会显示已装载共享文件夹的驱动器号。

在本文中,我们将展示如何允许从windows10、windows8和windows7中以提升模式运行的应用程序访问映射的网络驱动器。通过组策略连接的共享文件夹和用户连接的文件夹都会出现此问题。

重要。强烈建议不要完全禁用UAC,即使对于特定的程序也是如此。

事实上,当UAC被启用时,你不能从提升的应用程序访问以正常模式连接的映射网络驱动器。让我们看看问题是什么样子。例如,让我们确保我们可以在命令提示符runwithoutprivileges下访问连接的网络驱动器Z:\的内容。

如果我们在此用户下以管理员身份打开命令提示符,并尝试访问同一个驱动器,我们将收到消息:找不到驱动器的路径:

系统找不到指定的路径。

当频繁地以提升模式运行应用程序时,系统的这种行为可能会造成一些不便。

这一特性与具有本地管理员权限的用户的UAC机制有关。问题是,当这个用户登录时,会创建两个访问令牌:第一个令牌使用禁用的管理员权限(过滤的访问令牌,第二个是系统中具有完全权限的管理员令牌(所有在UAC中被提升的应用都在这个上下文中运行)。

我们可以使用whoami/all命令命令行.exe会话(普通的和提升的)同一个用户,比较一下当前的权限,可以看出它们有很大的不同。