前言:
当前看官们对“pythonuser”可能比较珍视,看官们都需要学习一些“pythonuser”的相关文章。那么小编同时在网上搜集了一些关于“pythonuser””的相关文章,希望看官们能喜欢,我们快快来学习一下吧!本文主要介绍在域环境中,使用python快速批量添加用户的方法。
本文在windows10,python3.11环境调试通过。
安装python-ldap库
Windows 使用执行pip install python-ldap 报错;提示找不到lber.h
需要在下面的网站:
找到适合自己python版本的ldap版本后,下载.whl包,然后执行pip install XXXX.whl,再进行安装。
基本代码如下:
def conn_ldap(ip,admin_user,admin_password,Domain,port=389): l = ldap.initialize('ldap://{0}:{1}'.format(ip,port)) r = l.simple_bind_s('cn={0},cn=users,dc={1},dc=com'.format(admin_user,Domain),"{0}".format(admin_password)) if r[0] == SccessfullyAUTH: print("Auth Successfully") return l else: print("Auth Failed") return Nonedef add_user(l,username,Domain): dn = 'cn={0},cn=users,dc={1},dc=com'.format(username,Domain) # 实际域 password=Generate_Random_Password(8) ml = [ ('objectclass', 'user'.encode("ascii")), ('userpassword', '{0}'.format(password).encode("ascii")), # ('userPrincipalName', '{0}@{1}.com'.format(username,Domain).encode("ascii")), ('displayName', username.encode("ascii")), ('name',username.encode("ascii")), ('sAMAccountName',username.encode("ascii")), ('userAccountControl', "514".encode("ascii")), #must 514 ] result = l.add_s(dn, ml) print("{0}User Add Successfully".format(username)) logging.info("{0}:{1}".format(username,password)) else: print('({0}):User Alerady exists,check'.format(username))c = conn_ldap("X.X.X.X","administrator","admin@123456","xxxx.com")add_user(c,user,Domain)
上述代码虽可批量增加用户,但无法将新建的用户的userAccountControl属性设置为512。即:默认情况下建立的用户是被禁用的,其原因在于:代码中使用ldap的363端口进行连接,该端口是没有加密的。
要想通过代码启用账户,必须先重置密码,重置密码属于安全操作,必须使用TLS协议,需要在639端口访问LDAPs服务,才能继续。所以需要在域控服务器安装CA证书服务才能操作。
相关参考:
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #pythonuser