我可以在没有身份验证的情况下毫无问题地在网络共享上映射驱动器。但是一旦我尝试使用用户名和密码进行身份验证,我就错过了一些东西。这是代码的当前工作示例,其中包含我不断收到的错误消息。
#!/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, 'Exception occurred.', (0, u'WSHNetwork.MapNetworkDrive', u'Logon failure: unknown user name or bad password.\r\n', None, 0, -2147023570), None)
最佳答案
您没有将 user_name
和 user_pass
传递给 MapNetworkDrive
。
试试这个:
testnetwork.MapNetworkDrive(drive_letter, network_path, True, user_name, user_pass)
注意:传递的True
有一个标志,表示映射信息是否存储在当前用户的配置文件中。
关于Python 身份验证到 SAMBA 共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2228846/