步骤是: 我一直在使用UAC运行服务程序,使用WNetAddConnection2函数映射网络驱动器,然后就成功了。
我运行了另一个具有管理员权限的程序(以管理员身份运行)来调用函数GetFileAttribute以获取网络驱动器的属性,但是,它返回0xffffffff并且错误代码为3(找不到特殊路径)。
我也尝试过在网络驱动器上创建文件,但它仍然失败了。
你能帮我解决这个问题吗?
非常感谢。
答案 0 :(得分:2)
在NT中,“网络驱动器”是从MS-DOS文件系统命名空间到UNC路径的符号链接。每个登录会话都维护这些符号链接。这也意味着管理员拥有自己的一组符号链接。
解决方案是在每个需要访问特定UNC网络路径的登录会话中调用WNetAddConnection2
作为驱动器号。
这在the MSDN page上记录:
在Windows Server 2003和Windows XP上, WNet功能创建和删除 MS-DOS中的网络驱动器号 与a关联的设备命名空间 登录会话,因为MS-DOS设备 由AuthenticationID标识(a 本地唯一标识符或LUID, 与登录会话相关联。)这个 会影响调用一个的应用程序 WNet函数创建一个 一个用户下的网络驱动器号 登录,但查询现有网络 在不同的用户下驱动字母 登录。强>