【发布时间】:2021-03-15 21:28:58
【问题描述】:
我想从 Python 脚本访问 Windows 共享(例如 \backupserver\backups)。共享受用户名和密码保护。如何使用用户名和密码打开此共享,例如列出其内容?
【问题讨论】:
我想从 Python 脚本访问 Windows 共享(例如 \backupserver\backups)。共享受用户名和密码保护。如何使用用户名和密码打开此共享,例如列出其内容?
【问题讨论】:
“NET USE”的完整示例:
backup_storage_available = os.path.isdir(BACKUP_REPOSITORY_PATH)
if backup_storage_available:
logger.info("Backup storage already connected.")
else:
logger.info("Connecting to backup storage.")
mount_command = "net use /user:" + BACKUP_REPOSITORY_USER_NAME + " " + BACKUP_REPOSITORY_PATH + " " + BACKUP_REPOSITORY_USER_PASSWORD
os.system(mount_command)
backup_storage_available = os.path.isdir(BACKUP_REPOSITORY_PATH)
if backup_storage_available:
logger.fine("Connection success.")
else:
raise Exception("Failed to find storage directory.")
【讨论】:
使用pywin32(用于 Windows 扩展的 Python),
访问win32wnet 模块中的windows 网络方法。
win32wnet.WNetAddConnection2() 方法允许您指定用户名和密码。
WNetAddConnection2(NetResource, Password, UserName, Flags)
创建到网络资源的连接。该函数可以将本地设备重定向到网络资源。
连接激活后,使用常规目录和文件方法访问共享。
【讨论】:
NetResource = win32wnet.NETRESOURCE()NetResource.lpRemoteName = r'\\10.0.0.1\share'
为什么不使用
挂载相关共享NET USE
命令?
通过子流程模块调用NET USE 非常简单。
【讨论】:
一个很好的包含“net use”命令的库:
【讨论】: