2011-04-08 878 views

答えて

1

あなたは

NET USE 

コマンドを使用して、関連する共有をマウントしていないのはなぜ?

サブプロセスモジュールからNET USEを呼び出すことは簡単です。

+0

あなたは正しいです!本当に簡単な解決策とうまく動作します。 – Rafal

6

pywin32(Python for Windows Extensions)を使用すると、 はwin32wnetモジュールのWindowsネットワーキング方式にアクセスします。 win32wnet.WNetAddConnection2()メソッドを使用すると、ユーザー名とパスワードを指定できます。

WNetAddConnection2(NetResource, Password, UserName, Flags) 

ネットワークリソースへの接続を作成します。この機能は、ローカルデバイスをネットワークリソースにリダイレクトすることができます。

接続がアクティブになったら、通常のディレクトリとファイルの方法を使用して共有にアクセスします。

+1

NetResource定義の例: 'NetResource = win32wnet.NETRESOURCE()' '' 'NetResource.lpRemoteName = r '\\ 10.0.0.1 \ share'' –

6

"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.") 
関連する問題