Python - Conexión a unidad de red: Problemas con try y except

 
Vista:
sin imagen de perfil

Conexión a unidad de red: Problemas con try y except

Publicado por Lacayo (1 intervención) el 18/10/2022 19:37:39
Hola a todos,

estoy empezando con Python y estoy creando un script para conectarme a una unidad de red y realizar un mantenimiento automático.

La parte del mapeo la tengo controlada pero tengo una duda.

uso este código para mapear

1
2
contraseña = getpass("Escribe la contraseña: ")
    os.system("net use \\\\miservidor\c$ /user:usuario1 " + contraseña )

y este para desmapear la unidad

1
os.system("net use \\\\miservidor\c$ /delete")

He visto por internet otro código que es:

1
2
3
4
5
6
# conectar con unidad de red
 
 
#mapDrive = "\\\\miservidort\c$"
#data = {'remote' :mapDrive, 'password' : 'la_crontraseña', 'username' : 'nombre_de_usuario', 'asg_type' : 0}
# win32net.NetUseAdd(None, 2, data)

La unidad de red se mapea sin problemas pero ....

y para desconectar hay que usar

1
win32net.NetUseDel('\\\\miservidor',nombre_de_ususario,win32net.USE_FORCE)

pero este segundo método no me funciona a la hora de desmapear la unidad

Tambien he probado

1
win32net.NetUseDel('\\\\miservidor\c$',nombre_de_ususario,win32net.USE_FORCE)

y tampoco funciona. ¿Alguno sabe porqué falla este segundo método?
¿Cuál sería la mejor forma de mapear una unidad de red?

Mi problema actual se debe a que quiero un controlar con un try -> except la gestión de la contraseña. Quiero que aparezca un mensaje si se introduce una contraseña incorrecta.

El código es el siguiente

1
2
3
4
5
6
7
try:
 
    contraseña = getpass("Escribe la contraseña: ")
    os.system("net use \\\\miservidor\c$ /user:usuario1 " + contraseña )
except OSError as WinError :
    ctypes.windll.user32.MessageBoxW(0, "Contraseña incorrecta", "Error!!", 0x00010000)
    close()

Pero cuando escribo mal la contraseña aparece este mensaje:

File "********** prueba.py", line 29, in <module>
directorio = os.listdir ('//miservidor/c$')
OSError: [WinError 1326] El nombre de usuario o la contraseña no son correctos: '//miservidor/c$'


Se cierra el scrpit y no salta la ventana de "contraseña incorrecta"

si escribo "except:" a secas, sin coletilla, también falla.

¿Qué me esta fallando en el except?


Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder