【问题标题】:Python - How to open Windows share using user name and passwordPython - 如何使用用户名和密码打开 Windows 共享
【发布时间】:2021-03-15 21:28:58
【问题描述】:

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

【问题讨论】:

    标签: python windows


    【解决方案1】:

    “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.")
    

    【讨论】:

      【解决方案2】:

      使用pywin32(用于 Windows 扩展的 Python), 访问win32wnet 模块中的windows 网络方法。 win32wnet.WNetAddConnection2() 方法允许您指定用户名和密码。

      WNetAddConnection2(NetResource, Password, UserName, Flags)
      

      创建到网络资源的连接。该函数可以将本地设备重定向到网络资源。

      连接激活后,使用常规目录和文件方法访问共享。

      【讨论】:

      • NetResource 定义示例:NetResource = win32wnet.NETRESOURCE()NetResource.lpRemoteName = r'\\10.0.0.1\share'
      【解决方案3】:

      为什么不使用

      挂载相关共享
      NET USE 
      

      命令?

      通过子流程模块调用NET USE 非常简单。

      【讨论】:

      • Answer 无法深入了解解决方案的工作原理和方式。
      【解决方案4】:

      一个很好的包含“net use”命令的库:

      http://covenanteyes.github.io/py_win_unc/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-12
        • 2012-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多