2011-04-08 9 views

risposta

1

Perché non si monta la quota relativa utilizzando il comando

NET USE 

?

La chiamata di NET USE tramite il sottoprocesso modulo è diretta.

+0

hai ragione! Soluzione davvero semplice e funziona bene. – Rafal

6

Utilizzando pywin32 (Python per le estensioni di Windows), accesso alle finestre di networking metodi nel modulo win32wnet. Il metodo win32wnet.WNetAddConnection2() consente di specificare nome utente e password.

WNetAddConnection2(NetResource, Password, UserName, Flags) 

crea una connessione a una risorsa di rete. La funzione può reindirizzare un dispositivo locale alla risorsa di rete.

Dopo che la connessione è attiva, accedere alla condivisione utilizzando i normali metodi di directory e file.

+1

Un esempio di definizione NetResource: 'NetResource = win32wnet.NETRESOURCE()' 'NetResource.lpRemoteName = r '\\ 10.0.0.1 \ share'' –

6

esempio completo per "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.") 
Problemi correlati