ad批量删除器件的text_批量修改AD账户与属性

以下内容是用来修改用户CN的方法,你也可以用来修改别的属性。建议先在实验环境中使用:

为了满足您修改commonName值的需求,我们认为只有MoveHere方法才能做到这一点。基于此,我找到了一个比较合适的VBS脚本并进行了一点修改。您可以按照我以下的实验步骤尝试一下。请务必在您的实验环境里充分测试之后再在现实环境中使用该脚本。

实验目标

建立5个账户来进行实验,命名为Old Name 01 – Old Name 05。他们的DN名称为:CN=Old Name 0x,OU=UpdateTest, DC=xichen, DC=lab

我们的实验目的,是将他们批量更新为New Name 01 – New Name 05。他们的DN名称为:CN=New Name 0x,OU=UpdateTest, DC=xichen, DC=lab

实验脚本

1.       用来提取用户属性信息到xls文件的exportUserProfile.vbs;

2.       用来修改用户属性信息的UserMod.vbs。

两个脚本如后文所示。

实验步骤

1.       将usermod.vbs放在C盘根目录下。

a.        使用exportUserProfile.vbs脚本,导出用户属性列表到C:\temp\MyExport.xls。如下图:

2.       选择一个可供脚本搜索唯一列,做为更改CN的依据,比如,我们在这里选定userPrincipalName做为该参考列。如果您希望使用别的值做为参考列,请修改usermod.vbs脚本的strSearchAttribute属性

3.       按照以下方式处理MyExport.xls文件:

a.        删除无关行,以排除更名对其它账户的影响。(注:这一步骤很重要,如果您留下了不希望修改的账户,并将cn列留空,它们将被修改成空的cn值)

b.       增加一列,叫cn。在该列中书写您希望改变的目标cn名称,在这里,我们设成New Name 01 – New Name 05

c.        把文件另存为CSV(Comma delimited)格式,放在C盘根目录位置。(C:\usermod.csv)

4.       在64位的Windows Server 2008 R2环境下,以管理员权限打开命令行提示,并进入C:\Windows\SysWOW64\ 目录。

5.       执行cscript C:\usermod.vbs,会看到更名的执行结果。

6.       如果您还希望相应地修改其它属性,也可以按照以上方式重复操作,或者直接在csv文件中加入对其它属性的修改(参考列除外)。但是,如果您希望修改参考列,如本实验中的userPrincipalName,请先修改usermod.vbs脚本的strSearchAttribute为其它的唯一列。此外,请注意选择参考列的原则:

a.        值是唯一的。

b.       AD Schema中存在的。

附脚本:

(1)     导出脚本  exportUserProfile.vbs

SET objRootDSE = GETOBJECT("LDAP://RootDSE")

strExportFile = "C:\temp\MyExport.xls"

strRoot = objRootDSE.GET("DefaultNamingContext")

strfilter = "(&(objectCategory=Person)(objectClass=User))"

strAttributes = "sAMAccountName,userPrincipalName,givenName,sn," & _

"initials,displayName,physicalDeliveryOfficeName," & _

"telephoneNumber,mail,wWWHomePage,profilePath," & _

"scriptPath,homeDirectory,homeDrive,title,department," & _

"company,manager,homePhone,pager,mobile," & _

"facsimileTelephoneNumber,ipphone,info," & _

"streetAddress,postOfficeBox,l,st,postalCode,c"

strScope = "subtree"

SET cn = CREATEOBJECT("ADODB.Connection")

SET cmd = CREATEOBJECT("ADODB.Command")

cn.Provider = "ADsDSOObject"

cn.Open "Active Directory Provider"

cmd.ActiveConnection = cn

cmd.Properties("Page Size") = 1000

cmd.commandtext = ";" & strFilter & ";" & _

strAttributes & ";" & strScope

SET rs = cmd.EXECUTE

SET objExcel = CREATEOBJECT("Excel.Application")

SET objWB = objExcel.Workbooks.Add

SET objSheet = objWB.Worksheets(1)

FOR i = 0 To rs.Fields.Count -

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值