Python - 如何使用用户名和密码打开Windows共享

Raf*_*fal 8 python windows

我想从Python脚本访问Windows共享(例如\ backupserver\backups).共享受用户名和密码保护.如何使用用户名和密码打开此共享,例如列出其内容?

Raf*_*fal 10

"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.")
Run Code Online (Sandbox Code Playgroud)


gim*_*mel 6

使用pywin32(Python for Windows Extensions),访问win32wnet模块中的Windows网络方法.该win32wnet.WNetAddConnection2()方法允许您指定用户名和密码.

WNetAddConnection2(NetResource, Password, UserName, Flags)
Run Code Online (Sandbox Code Playgroud)

创建与网络资源的连接.该功能可以将本地设备重定向到网络资源.

连接处于活动状态后,使用常规目录和文件方法访问共享.

  • NetResource 定义示例:`NetResource = win32wnet.NETRESOURCE()` `NetResource.lpRemoteName = r'\\10.0.0.1\share'` (3认同)

小智 2

为什么不使用以下命令挂载相关共享

NET USE 
Run Code Online (Sandbox Code Playgroud)

命令?

NET USE通过子流程模块进行调用是直接的。