批量修改AD用户属性python脚本

主要是用python调用dsquery查询到dn,再用python调用dsmod进行dn的属性修改。

namelist.txt格式如下,部门的字段其实可以换成相应想修改的AD属性,比如AD中title是表示职位,想要修改工号-职务,就将dsmod语句改成如下(具体dsmod user的参数查 dsmod user /?可以看到。)

"dsmod user " + dn + " -title " + dep

|---------------|

|sAMAccount,dep |

|工号,部门      |

|---------------|

代码如下,需要以管理员权限允许才能执行dsmod:

#coding=utf-8
import os

def getdn(GongHao):
    z = os.popen("dsquery user -samid "+ GongHao).read()
    return z 

def CUD(dn,dep):
    ‘change users depatment‘
    try:
        z = os.popen("dsmod user " + dn + " -dept " + dep).read()
        return z
    except:print ‘can‘t find user ‘

dicfile = open(‘namelist.txt‘,‘r‘)
dic1 = {}
dic2 = {}
#make dic1,dic1 format from text file
for line in dicfile:
    a = line.strip().split(‘,‘)
    dic1[a[0]] =  a[1]
dicfile.close()

#print ‘dic1‘,dic1
#make dic2, dic2 is {dn:depatement}
for k,v in dic1.iteritems():
    print k,v
    dic2[getdn(k)] = v

print ‘*‘*10,dic2

for i in dic2:
#    print ‘i=%s‘ %i,‘dic2[i]=%s‘ %dic2[i]
    if dn==‘‘:pass
    else:CUD(i.strip(),dic2[i])
时间: 2024-10-07 05:20:24

批量修改AD用户属性python脚本的相关文章

批量修改AD用户属性

首先使用csvde导出需要修改用户的DN 再准备一个包含用户信息的Excel表.整理能如下格式,这里示范批量修改用户的邮件地址,红色部分改成自己需要的,还要修改其它信息,可以在后面直接加,对应的参数见链接https://technet.microsoft.com/en-us/library/cc732954.aspx , 将此文本文件保存为.bat,最后在服务器上运行. dsmod user CN=admin01ou01,OU=Users,OU=OU01,DC=adtest01,DC=com -

一个批量修改AD信息的小脚本

今天接到一个任务,一个子公司100来个USER的账号,更换了新的电话号码,另顺便需要在AD里面体现出 各USER的职位. 好吧,100多个人,如果手动来改,量也很大,首先想到的是用脚本来修改,刚好想到了powershell. 首先,准备一个CSV文件,把USER按如下格式排练好,各值之间用逗号隔开,之后命名test.csv文件 samaccountname,telephonenumber,title user1,1234567,engineer user2,2345678,sales ...,.

PowerShell批量修改AD用户密码属性

需求:非常普通的一个需求,就是给AD用户修改密码,但是问题是量太大了.所以写了个脚本 cls $pass = ConvertTo-SecureString -AsPlainText 12333333344.abc -Force Import-Csv -Path d:\pp.csv | foreach {  Get-ADUser -Identity $_.name|Set-ADAccountPassword -Reset -NewPassword $pass Get-ADUser -Identit

为Discuz! X3.2批量添加用户的python脚本

为Discuz! X3.2批量添加用户的python脚本 搭建了一个Discuz! X3.2环境用于工作,需要添加用户时没有找到合适的工具,虽然同事最终用按键精灵解决了问题,不过还是决定写一段代码留下来,也许用得上. 之所以是Python而不是PHP,只是最近在接触Python,发现在这种场合更加方便. 添加用户代码: # encoding: utf-8 ''' Created on 2015年7月1日 @author: ZhongPing ''' import urllib import ur

Powershell批量修改AD账户登陆到的计算机

Powershell 批量修改AD账户登陆到的计算机 上个月有个项目中碰到这样一个需求,讲述步骤前先描述下客户的实际情况:因安全考虑需要,域内的计算机之前都已经设置了指定登陆到的计算机,目前的项目是从Lotus邮件系统迁移到Exchange 2010,Lotus工作流迁移到泛微OA,域内账户输入账号和密码后不能登陆到Exchange系统.原因就是设置了账户的登陆到计算机属性,因为Exchange是新上的系统,没在指定范围内,所以需要添加Exchange服务器CAS01,CAS02,Mail,Ma

Poweshell修改AD账号属性

Poweshell修改AD账号属性 最近项目中需要对大批量AD用户属性进行修改,如电话.手机等不唯一属性.顺便整理了个用户属性对应AD字段信息,方便查看. 1.常规属性 2.地址属性 3.电话属性 4.组织属性 ---------------------------------------------------------------------------------------- 步骤1.根据用户要求,我们要对现有的AD账号属性进行修改,需要添加以下字段值: 显示名------displa

AD用户属性项目添加

AD用户属性显示. 打开活动目录用户和计算机默认可以看到用户的名称,类型和描述信息,还有一些属性可以添加,在2008的域控上的高级属性里有一项属性是属性编辑器,有很多其他的属性,请问是否可以将属性编辑器里比如EmployeeID的属性值显示出来,只要选中AD里的一个容器那么右边显示的内容里包含有EmployeeID一列,该如何实现. 回答: 根据您的描述,您想知道如何将EmployeeID等许多默认没有在Available columns显示框里显示出来的属性加入Available column

通过JAVA开发的修改AD用户的工具,修改AD用户密码时报错

今天遇到1个用户反馈的问题,他们通过JAVA开发了一个工具(修改AD用户密码),在此工具中如果将LDAP指向1台辅助DC时就报错,详细信息如下: 问题描述: ========= 通过JAVA开发的修改AD用户密码的工具,LDAP指向1台辅助域控时,修改用户密码报错,JAVA上报错如下: javax.naming.CommunicationException: simple bind failed: 10.10.10.23:636 [Root exception is javax.net.ssl.

使用chpasswd命令批量修改系统用户密码

chpasswd命令工作原理: 从系统的标准输入读入用户的名称和口令,并利用这些信息来更新系统上已存在的用户的口令! 语法: 1:# echo 用户名:密码 | chpasswd 2:# chpasswd < doiido.txt 相关参数: -e :如果使用了-e选项,口令将只能以加密的方式传递 -e, --encrypted  supplied passwords are encrypted 如果未使用-e选项,口令将按明文的形式传递 注意事项 1:用户名必须是系统上已存在的用户 2:普通用