Python-pyad创建名称中带有逗号的用户

Python-pyad创建名称中带有逗号的用户,python,pyad,Python,Pyad,我正在尝试使用pyad创建一个用户,我的工作是: ou = pyad.adcontainer.ADContainer.from_dn('OU=Employees,DC=lan,DC=company,DC=com') name = ("doe john") newUser = pyad.aduser.ADUser.create(name, ou, password="password") 但是,如果我尝试将名称改为doe,john(现在有一个逗号): 我得到一个错误:

我正在尝试使用pyad创建一个用户,我的工作是:

    ou = pyad.adcontainer.ADContainer.from_dn('OU=Employees,DC=lan,DC=company,DC=com')
    name =  ("doe john")
    newUser = pyad.aduser.ADUser.create(name, ou, password="password")
但是,如果我尝试将名称改为
doe,john
(现在有一个逗号):

我得到一个错误:

Traceback (most recent call last):
File "C:\Users\me\AppData\Local\Programs\Python\Python36-32\lib\site- packages\pyad\adcontainer.py", line 38, in create_user
obj.SetInfo()
File "<COMObject <unknown>>", line 2, in SetInfo
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Active 
Directory', 'An invalid dn syntax has been specified.\r\n', None, 0, -2147016654), None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "NamelyToAD.py", line 49, in <module>
newUser = pyad.aduser.ADUser.create(name, ou, password="Password1")
File "C:\Users\me\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pyad\aduser.py", line 16, in create
optional_attributes=optional_attributes
File "C:\Users\me\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pyad\adcontainer.py", line 47, in create_user
pyadutils.pass_up_com_exception(e)
File "C:\Users\me\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pyad\pyadutils.py", line 58, in pass_up_com_exception
raise WIN32_ERRORS.get(info['error_num'], win32Exception)(error_info=info, additional_info=additional_info)
pyad.pyadexceptions.win32Exception: 0x80072032: An invalid dn syntax has been specified.
回溯(最近一次呼叫最后一次):
文件“C:\Users\me\AppData\Local\Programs\Python36-32\lib\site-packages\pyad\adcontainer.py”,第38行,在create\u user中
obj.SetInfo()
SetInfo中第2行的文件“”
pywintypes.com_错误:(-2147352567,'发生异常',(0,'活动
目录“”,指定了无效的dn语法。\r\n',无,0,-2147016654),无)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“NamelyToAD.py”,第49行,在
newUser=pyad.aduser.aduser.create(名称,ou,password=“Password1”)
文件“C:\Users\me\AppData\Local\Programs\Python36-32\lib\site packages\pyad\aduser.py”,第16行,在create中
可选_属性=可选_属性
文件“C:\Users\me\AppData\Local\Programs\Python36-32\lib\site packages\pyad\adcontainer.py”,第47行,在create\u user中
pyadutils.pass\u up\u com\u异常(e)
文件“C:\Users\me\AppData\Local\Programs\Python\Python36-32\lib\site packages\pyad\pyadutils.py”,第58行,在pass\u-up\u-com\u异常中
引发WIN32\u错误。获取(信息['error\u num',WIN32异常)(错误信息=信息,附加信息=附加信息)
pyad.PyadeExceptions.Win32异常:0x80072032:指定了无效的dn语法。

我不知道如何避开逗号,我尝试过将其转义,并包括一个chr(44),但没有任何效果。

有两个字符问题需要处理:

  • LDAP对象的RDN(例如,
    cn=User Name
    )使用反斜杠转义以下字符:
    ,\\\+<>;“=

  • sAMAccountName
    以下任一字符:
    []:;|=+*?<>/\

  • pyad
    将尝试将
    sAMAccountName
    属性设置为传递给
    ADUser.create()
    name
    参数,因此,如果
    name
    中有禁止字符,则必须提供您自己的
    sAMAccountName
    作为可选属性

    在您的示例中,您必须执行以下操作:

    pyad.aduser.ADUser.create("Doe\, John", ou, password="Password123", 
        optional_attributes={'sAMAccountName':'jdoe'})
    
    pyad.aduser.ADUser.create("Doe\, John", ou, password="Password123", 
        optional_attributes={'sAMAccountName':'jdoe'})