我需要调用WNetGetConnection
来获取UNC路径,当应用程序作为标准用户运行时,它运行良好,但当应用程序以admin身份运行时,它会返回1201
(ERROR_CONNECTION_UNAVAIL)错误代码。根据{{3}}它按预期工作。
如果使用Microsoft LAN Manager建立网络连接 网络,并且调用应用程序在不同的登录中运行 会话比建立连接的应用程序,一个调用 相关本地设备的WNetGetConnection功能将失败。 该函数因ERROR_NOT_CONNECTED或失败而失败 ERROR_CONNECTION_UNAVAIL。这是因为使用了连接 Microsoft LAN Manager仅对在其中运行的应用程序可见 与进行连接的应用程序相同的登录会话。 (至 防止对WNetGetConnection的调用失败 足以让应用程序在用户帐户中运行 创建了连接。)
这意味着根本不可能从以管理员身份运行的应用程序获取UNC路径?还有其他方法吗?
答案 0 :(得分:2)
这是设计的。由非提升帐户创建的网络共享在高程下不可见,反之亦然。
有关此问题的讨论,请参阅超级用户的this question。显然有一个注册表设置可以在高架和非高架帐户之间共享映射驱动器,但我自己从未尝试过。
答案 1 :(得分:0)
通常无法在不同的Windows登录会话之间共享网络连接。这与管理员帐户/提升级别无关。每个Windows登录或模拟会话都需要创建自己的网络连接。