Python - Как открыть общий доступ к Windows, используя имя пользователя и пароль - PullRequest
8 голосов
/ 08 апреля 2011

Я хотел бы получить доступ к общему ресурсу Windows (ex. \ Backupserver \ backups) из скрипта Python. Доля защищена именем пользователя и паролем. Как открыть этот ресурс, используя имя пользователя и пароль, и, например, перечислить его содержимое?

Ответы [ 4 ]

9 голосов
/ 09 апреля 2011

Полный пример "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.")
6 голосов
/ 08 апреля 2011

Используя pywin32 (Python для расширений Windows), получите доступ к сетевым методам Windows в модуле win32wnet.Метод win32wnet.WNetAddConnection2() позволяет указать имя пользователя и пароль.

WNetAddConnection2(NetResource, Password, UserName, Flags)

Создает подключение к сетевому ресурсу.Функция может перенаправить локальное устройство к сетевому ресурсу.

После того, как соединение активировано, получите доступ к общему ресурсу, используя обычные методы каталогов и файлов.

2 голосов
/ 08 апреля 2011

Почему бы вам не смонтировать соответствующий ресурс с помощью команды

NET USE 

?

Вызов NET USE через модуль подпроцесса прямой.

1 голос
/ 17 октября 2013

Хорошая библиотека, которая содержит команду net use:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...