Python验证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
执行代码时产生的错误信息如下:
(-2147352567, '发生异常。', (0, u'WSHNetwork.MapNetworkDrive', u'登录失败:未知用户名或 密码错误。\r\n', None, 0, -2147023570), None)
1 个回答
2
你没有把 user_name
和 user_pass
传给 MapNetworkDrive
。试试这样做:
testnetwork.MapNetworkDrive(drive_letter, network_path, True, user_name, user_pass)
注意:这里传入的 True
是一个标志,表示这个映射信息是否存储在当前用户的个人资料中。