python+ldap操作

Python021

python+ldap操作,第1张

from ldap3  import Server, Connection, ALL, MODIFY_ADD, MODIFY_REPLACE, MODIFY_DELETE

class Connect_ldap:

    def __init__(self):   #初始化

        self.server ='10.10.10.10'   #ldap服务器地址

        self.user ='cn=Directory Manager'   # Bind DN or user

        self.base_dn ='dc=bizenit,dc=com'  #base_dn

        self.pwd ='XXXXXXX'    #密码

        self.port =5389   #端口

    def connect(self):    #连接ldap服务

        server = Server(host=self.server, port=self.port, get_info=ALL)

        conn = Connection(server=server, user=self.user, password=self.pwd, auto_bind=True)

        return conn

    def add_user(self):   #添加条目

        i =1

        j =17300000001

        conn =self.connect()

        while i <220000:

            mail =str(j) +"@mail.com"

            print(conn.add("uid=username%s,ou=Internal,ou=People,dc=bizenit,dc=com" % (i),

                          object_class=['top', 'inetOrgPerson', 'person', 'organizationalPerson',

                                        'smart-extends', 'customized-extends'],        #类型

                          attributes={'cn':"username%s" % (i), 'smart-type':"E1",

                                      'departmentNumber':"D1155073", 'mobile': j,

                                      'smart-status':1, 'mail': mail, 'telephoneNumber': j,

                                      'userPassword':"smart123"}))    #属性

            i +=1

            j +=1

    def delete_user(self):     #删除条目

        i =1

        conn =self.connect()

        while i <220000:

            print(conn.delete("uid=username%s,ou=Internal,ou=People,dc=bizenit,dc=com" % (i)))

            i +=1

    def modify_user(self):      #修改条目 

        i =793123

        j =17300793123

        conn =self.connect()

        while i <1000000:

            conn.modify("uid=username%s,ou=Internal,ou=People,dc=bizenit,dc=com" % (i),

                        {"objectClass": [(MODIFY_ADD, ['customized-extends', 'smart-extends'])]})

mail =str(j) +"@mail.com"

            a = conn.modify("uid=sidl%s,ou=Internal,ou=People,dc=bizenit,dc=com" % (i),

                            {"departmentNumber": [(MODIFY_ADD, ['D1155073'])], "smart-type": [(MODIFY_ADD, ["E1"])],

                            "telephoneNumber": [(MODIFY_ADD, [j])], "userPassword": [(MODIFY_ADD, ["smart123"])],

                            "smart-status": [(MODIFY_ADD, [1])], "mail": [(MODIFY_ADD, [mail])]})

        print(a)

        print(i)

        i +=1

        j +=1

    def modify_dn_user(self):    #移动条目

        i =1

        j =17300000001

        conn =self.connect()

        print(conn.modify_dn("uid=username%s,ou=People,dc=bizenit,dc=com" % (i), 'uid=username%s' % (i),

                            new_superior="ou=Internal,ou=People,dc=bizenit,dc=com"))

        i +=1

        j +=1

if __name__ =="__main__":

a = Connect_ldap()

a.add_user()

你说的是AD域账号吧?先安装lpda3的库

在cmd命令行下运行:

pin install ldap3

然后开始写python脚本

from ldap3 import *

user = "CN=visitor02 ,OU=level1,DC=hello,DC=com,DC=cn" # 定义你要给谁改密码

admin='xxxxxx' #xxxx换成你域控的管理员账号如hello\administrator, hello是域名

adminpwd = 'xxxx' # 域控的管理员密码

s = Server('10.10.xx.xx', get_info=ALL, use_ssl=True) #10.10.xx.xx换成你域控的IP地址,这条是定义域服务器信息

c = Connection(s,user=admin, password=adminpwd, auto_bind=True) #登录域服务器

print(c.extend.microsoft.modify_password(user,"123456")) #这行就是改密码。如果print出true,就是成功了。如果false,再在下面加一条

print(c.response) #会显示为什么失败。

如果想了解更多的python ldap3库,可以看这个链接网页链接

默认页面只能测试,这里需要大概改下才能使用

vim backend-sample-app.py

python backend-sample-app.py &

backend-sample-app.py其中html=``````修改后如下

http://192.168.88.188:5601/