如何使用服务器名称而非映射驱动器号连接共享驱动器?
共享权限与NTFS权限不一致
映射的V:盘是通过当前用户身份挂载的,已经自动完成了权限验证,但直接访问UNC路径时,系统可能没有正确传递你的凭据,或者目标共享文件夹的共享权限(注意和NTFS权限是两套独立体系)未给你的用户分配读取权限。需要检查共享文件夹的共享权限设置,确保你的账户拥有至少读取权限。Python字符串转义错误
在Python中,反斜杠\是转义字符,你写的open("\\server.name.company\path\to\file.txt")会被解析成\server.name.company\path\to\file.txt(第一个反斜杠转义了第二个),缺少了UNC路径必需的开头双反斜杠。正确写法应该是:- 使用双反斜杠转义:
open("\\\\server.name.company\\path\\to\\file.txt") - 或者使用原始字符串:
open(r"\\server.name.company\path\to\file.txt")
- 使用双反斜杠转义:
SMB协议版本不兼容
本地系统与服务器支持的SMB协议版本可能不匹配,比如服务器仅支持SMB1但本地系统默认禁用了该版本,反之亦然。可以尝试在本地启用对应SMB版本,或联系管理员确认服务器支持的SMB版本。DNS解析失败
虽然服务器名称拼写正确,但直接访问UNC路径时可能存在DNS解析问题,导致系统无法找到服务器。可以尝试用服务器的IP地址替代域名访问,比如open(r"\\192.168.x.x\path\to\file.txt"),如果能访问,说明是DNS解析故障,需要检查本地DNS设置或联系网络管理员。凭据缓存异常
映射驱动器时缓存的访问凭据可能未被直接访问UNC路径时调用,或者凭据已过期。可以打开Windows凭据管理器,删除与该服务器相关的旧凭据,重新访问UNC路径并输入正确凭据后测试。组策略或防火墙限制
公司组策略可能限制了UNC路径的直接访问,或者本地/服务器端防火墙阻止了SMB端口(通常为445端口)的流量。可以检查本地防火墙是否允许SMB流量,或联系IT管理员确认是否有相关组策略限制。
内容的提问来源于stack exchange,提问作者Kropiciel

