2010-02-09 29 views
3

Je peux mapper le lecteur sans problème sur les partages réseau sans authentification. Mais il me manque quelque chose une fois que j'essaye de m'authentifier avec un nom d'utilisateur et un mot de passe. Voici l'exemple de travail actuel du code avec le message d'erreur que je continue à recevoir.Authentification Python au partage SAMBA

#!/usr/bin/python 
# Drive Map Script 
import pywintypes 
import win32com.client 

# Disconnect previous mapped drives 
testnetwork = win32com.client.Dispatch('Wscript.Network') 
network_drives = testnetwork.EnumNetworkDrives() 
for mapped_drive in [network_drives.Item(i) 
        for i in range(0, network_drives.Count() -1 , 2) 
        if network_drives.Item(i)]: 
    testnetwork.RemoveNetworkDrive(mapped_drive, True, True) 

# Mount the drives 
drive_mapping = [ 
    ('z:', '\\\\192.168.1.100\\Some_Share', 'someuser', 'somepass')] 

for drive_letter, network_path, user_name, user_pass in drive_mapping: 
    try: 
     testnetwork.MapNetworkDrive(drive_letter, network_path) 
    except Exception, err: 
     print err 

et l'erreur génère le code lors de l'exécution:. Exception est survenue '

(-2147352567,, (0, u'WSHNetwork.MapNetworkDrive », échec u'Logon: inconnue nom d'utilisateur ou mot de passe incorrect . \ r \ n », Aucun, 0, -2147023570), None)

+0

Je laisserais votre code comme il était à l'origine, la réponse acceptée montre le changement nécessaire. – prestomation

+0

Le code a été replacé dans son état d'origine. Merci. – Dunwitch

Répondre

2

Vous ne passent pas user_name et user_pass-MapNetworkDrive. Essayez ceci:

testnetwork.MapNetworkDrive(drive_letter, network_path, True, user_name, user_pass) 

Note: le True passé il y a un drapeau qui indique si les informations de mappage sont stockées dans le profil de l'utilisateur actuel.

+0

C'était tout. Je savais que c'était quelque chose de simple. Merci pour la solution! – Dunwitch

Questions connexes