我想更改 ldap 用户的密码。脚本是:
def changePassword(url,binddn,pw, newpw):
l = ldap.initialize(url)
ldap.
try:
l.protocol_version=ldap.VERSION3
l.simple_bind_s(binddn,pw)
except:
print "Error Bind in changePassword"
sys.exit(0)
old = {'userPassword':pw}
new = {'userPassword':newpw}
ldif = modlist.modifyModlist(old,new)
try:
l.modify_s(binddn,ldif)
l.unbind_s()
except:
print "error"
Run Code Online (Sandbox Code Playgroud)
但是当我调用这个函数时,我收到“错误”。当我更改密码时,我的 LDAP 具有要求当前密码的 PPolicy。
如何使用此 PPolicy 更改密码?
谁能帮我??
提前致谢 达里奥
我正在编写一个python-ldap3用于生成虚拟用户和组的小脚本。
我在将用户与群组链接时遇到问题。运行此代码段后,我的Active Directory服务器中没有任何更改:
conn.modify('cn=dancing,ou=test-groups,dc=stand,dc=lsd', {'memberuid': [(MODIFY_REPLACE, ['cn=User1, ou=users,dc=stand,dc=lsd'])]})
Run Code Online (Sandbox Code Playgroud)
怎么了?
我试图使用例如search_s函数来搜索基于其完整的可分辨名称的对象,但我发现这不方便.例如,
search_s('DC=example, DC=com', ldap.SCOPE_SUBTREE,
'(CN=Somebody, OU=Department, DC=example, DC=com)')
Run Code Online (Sandbox Code Playgroud)
如何根据其完整的LDAP专有名称检索一个对象?
我在控制台中使用 python ldap 并得到了我无法解释的结果。希望有人能为我澄清这一点。
打开新的 python 控制台
import ldap
certfile = '~/ad-server.test.loc.pem'
ldap.set_option(ldap.OPT_X_TLS_CACERTFILE, certfile)
who = 'CN=Administrator,CN=Users,dc=test,dc=loc'
passwd = 'passwd'
sslserver = 'ldaps://ad-server.test.loc:636'
#let's say I would like to disable certificate verification for the next connection
ldap.set_option(ldap.OPT_X_TLS_REQUIRECERT, ldap.OPT_X_TLS_ALLOW)
conn = ldap.initialize(server)
conn.simple_bind_s(who, passwd)
(97, [])
#connected successfully
#Now I want to enable certificate verification and try to connect again (this time I should
#fail because I use sef-signed certificate)
#Unbind connection
conn.unbind()
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_DEMAND)
conn = ldap.initialize(server)
#Trying to connect …Run Code Online (Sandbox Code Playgroud) 我想更改AD用户的userAccountControl和密码。用户已经在AD中创建。该用户是在AD中使用python-ldap模块创建的,处于“禁用”状态且没有密码。
AD托管在win2k8R2上。
当我使用pythion-ldap脚本更改uac和密码时,抛出以下错误:
ldap://192.168.254.1:389
(97, [])
Traceback (most recent call last):
File "C:\workspace\utils\src\u.py", line 16, in <module>
l.modify_s(dn, mod_attrs)
File "C:\Python26\lib\site-packages\ldap\ldapobject.py", line 336, in modify_s
return self.result(msgid,all=1,timeout=self.timeout)
File "C:\Python26\lib\site-packages\ldap\ldapobject.py", line 436, in result
res_type,res_data,res_msgid = self.result2(msgid,all,timeout)
File "C:\Python26\lib\site-packages\ldap\ldapobject.py", line 440, in result2
res_type, res_data, res_msgid, srv_ctrls = self.result3(msgid,all,timeout)
File "C:\Python26\lib\site-packages\ldap\ldapobject.py", line 446, in result3
ldap_result = self._ldap_call(self._l.result3,msgid,all,timeout)
File "C:\Python26\lib\site-packages\ldap\ldapobject.py", line 96, in _ldap_call
result = func(*args,**kwargs)
ldap.UNWILLING_TO_PERFORM: {'info': '00002077: SvcErr: DSID-031903A4, problem 5003 (WILL_NOT_PERFORM), data 0\n', 'desc': 'Server is unwilling …Run Code Online (Sandbox Code Playgroud) 使用python-ldap,我想删除我的 LDAP 树的整个子树。
我想出了:
def ldap_recursive_delete_s(con, base_dn):
search = con.search_s(base_dn, ldap.SCOPE_SUBTREE)
delete_list = [dn for dn, _ in search]
delete_list.reverse()
for dn in delete_list:
con.delete_s(dn)
Run Code Online (Sandbox Code Playgroud)
我想知道是否有像ldaprmCLI 工具那样的“递归”选项。
我正在使用python-ldap查询Active Directory
我有这个DN
CN=Whalen\, Sean,OU=Users,OU=Users and Groups,DC=example,DC=net
Run Code Online (Sandbox Code Playgroud)
可以很好地用作查询的基础,但是如果我尝试在这样的搜索过滤器中使用它
(&(objectClass=group)(memberof:1.2.840.113556.1.4.1941:=CN=Whalen\, Sean,OU=Users,OU=Users and Groups,DC=example,DC=net))
Run Code Online (Sandbox Code Playgroud)
我得到一个Bad search filter错误。根据我的测试,即使我使用反斜杠(\)进行了转义,CN中的逗号似乎也是罪魁祸首。但是,Microsoft文档中未将逗号作为需要在过滤器中转义的字符列出。
我想念什么?
我正在尝试使用 PyCharm 安装 python-ldap 包,但它不起作用,出现以下错误:
错误信息:
使用缓存收集 python-ldap https://files.pythonhosted.org/packages/7f/1c/28d721dff2fcd2fef9d55b40df63a00be26ec8a11e8c6fc612ae642f9cfd/python-ldap-3.1.0.tar.gz 使用缓存收集 pyasn1>=0.3.7 (来自 python-ldap)https://files.pythonhosted.org/packages/a0/70/2c27740f08e477499ce19eefe05dbcae6f19fdc49e9e82ce4768be0643b9/pyasn1-0.4.3-py2.py3-none-any.whl 收集pyasn1_modules>=0.1.5(来自python-ldap)使用缓存https: //files.pythonhosted.org/packages/e9/51/bcd96bf6231d4b2cc5e023c511bee86637ba375c44a6f9d1b4b7ad1ce4b9/pyasn1_modules-0.2.1-py2.py3-none-any.whl 安装收集的软件包:pyasn1、pyasn1-modules、python-ld ap 运行 setup.py install for python-ldap:开始运行 python-ldap 的 setup.py 安装:完成状态为“错误”命令 C:\Users\Joan\PycharmProjects\prueba\venv\Scripts\python.exe -u -c "import setuptools 的完整输出, tokenize; file ='C:\Users\Joan\AppData\Local\Temp\pycharm-packaging\python-ldap\setup.py';f=getattr(tokenize, 'open', open)(文件);code= f.read().replace('\r\n', '\n');f.close();exec(编译(代码,文件,'exec'))”安装--记录C:\ Users \ Joan \ AppData \ Local \ Temp \ pip-record-y2ot_u84 \ install-record.txt--单一版本-外部管理--编译--安装-headers C:\Users\Joan\PycharmProjects\prueba\venv\include\site\python3.6\python-ldap:运行安装运行构建运行 build_py 创建 build\lib.win-amd64-3.6 复制 Lib\ldapurl.py - > build\lib.win-amd64-3.6 复制 Lib\ldif.py -> build\lib.win-amd64-3.6 创建 build\lib.win-amd64-3.6\ldap 复制 Lib\ldap\async.py -> 构建\lib.win-amd64-3.6\ldap 复制 Lib\ldap\asyncsearch.py -> …
我在RHEL 6.5服务器上安装python-ldap.我在Python 2.7.9上.
我使用以下命令进行安装
pip2.7 install python-ldap
Run Code Online (Sandbox Code Playgroud)
编译过程失败,出现大量错误.
有人可以指导我吗?
我正在使用python 2.7.6,在我的代码中有一行:
import psycopg2.extensions
Run Code Online (Sandbox Code Playgroud)
我已经使用pip安装了 接下来,我的编辑器告诉我,psycopg2需要python_ldap = 2.4.19。但是,在PyPI存储库中,只有32位版本,该版本不起作用,因为我的Windows是64位。有python_ldap = 2.4.28的64位版本在此处获得,但正在运行
pip install python_ldap-2.4.28-cp27-cp27m-win_amd64.whl
Run Code Online (Sandbox Code Playgroud)
在Windows命令行中返回
python_ldap-2.4.28-cp27-cp27m-win_amd64.whl is not a supported wheel on this platform.
Run Code Online (Sandbox Code Playgroud)
红色,我猜这是一个错误消息。因此,最后,我应该怎么做才能在笔记本电脑上安装该软件包?
python-ldap ×10
python ×6
ldap ×5
pip ×2
python-2.7 ×2
ldap-query ×1
passwords ×1
pycharm ×1
python-3.x ×1
recursion ×1
redhat ×1