ADBulkAdmin-cn

ADBulkAdmin是专为企业AD管理员提供的AD帐户批量管理工具,旨在提高管理员的工作效率,简化管理员的工作,并记录管理员操作以备日后有迹有循。我们知道“Active Directory用户和计算机”可以用于管理AD帐户,但是只能实现非常简单的批量管理功能。而ADBulkAdmin则是专为批量管理而开发,主要包含以下功能:

  • 批量查看用户属性;
  • 获取用户,包括从OU中获取AD用户,从组中获取组成员,获取所有禁用用户、锁定用户和密码永不过期的用户,还可以根据密码过期天数获取用户;
  • 批量按指定属性新建新用户;
  • 批量解锁用户;
  • 批量重置用户密码;
  • 批量禁用/启用用户;
  • 批量删除用户;
  • 批量设置用户属性;
  • 批量查看组属性;
  • 批量添加用户到组;
  • 批量从组中删除用户;
  • 从OU中获取组,联系人和计算机;
  • 按天数获取不活动的计算机;
  • 记录管理员的所有操作到数据库,并可查看日志;
  • 批量测试AD用户密码(默认为锁定),用于测试AD用户是否使用了简单密码;
  • 检查用户在所有域控上的锁定时间和最后登录时间;
  • 获得并导出用户在指定域控上的最后登录时间报告;
  • 导出所有操作得到的数据到CSV文件。

如果您需要使用“批量测试密码”的功能,请与我联系,需要您支付一点点以示支持。 如果您想自定义功能或者您在使用中发现任何bug,请与我联系,如果您觉得此工具有用,请以予以支持,谢谢!

软件绿色免费,如有帮助,希望大家予以支持,以下为微信捐助,谢谢!本人微信号:nilejiang, 欢迎垂询。

以下为UsefulShare公众号,欢迎关注以及时获得ADBulkAdmin工具的最新动态:

运行条件:

1..net Framework 4.0 或更高版本.

2.Office 2007或更高版本。如果您使用的是32位版本的Office,请运行32位Office文件夹中的ADBulkAdmin.exe,如果您使用的是64位版本的Office,请运行64位Office文件夹中的ADBulkAdmin.exe。通过Office Excel,可以批量创建用户和设置用户属性。如果您使用的是Office 2016无法从Excel读取数据,请下载并安装Microsoft Access Database Engine 2010 Redistributable from http://www.microsoft.com/en-US/download/details.aspx?id=13255  或 Microsoft Access 2013 Runtime https://www.microsoft.com/en-us/download/details.aspx?id=39358

3.工具组成: ADBulkAdmin.exe, ADBulkAdmin.exe.config, users.xlsx, ADBATData.accdb. (请确保以上文件在同一个文件夹中!)

4.运行此工具的用户必须具有所需的AD管理权限。

操作手册:

1. 解压下载的文件并运行ADBulkAdmin.exe,如果您的电脑已经加入域,工具会自动连接到您电脑连接的域控,直接操作即可。如果电脑未加入域,您可以点击“设置”指定您要连接的域控,您还可以设置数据库的保存路径,设置常用的查看用户属性 、新建用户属性和设置用户属性。

2. 查看用户:您可以输入AD用户的samAccountName(用户名),userPrincipalName(用户主体名称),mail(邮件地址) 或者 displayName (显示名称)来查找用户并查看属性。如果您选择了All,则工具会使用任一属性进行匹配查询,如果您选择了某一属性,则会使用该属性进行精确查找。输入时请一个用户一行。

3. 获取用户:提供多种获取用户的方式

  • 获取OU中的用户:您可选择获取OU中的用户并点击运行,在弹出窗口中选择一个OU并点击确定,即可显示该OU中的用户属性,属性与查看用户属性中选择的相同。
  • 获取组中的成员:您可以从所有组中选择一个组并显示其组中的成员,您也可以在AD中搜索组,然后确定即可。
  • 获取所有禁用用户:您可以获取AD中所有禁用用户。
  • 获取所有锁定用户:您可以获取AD中所有的锁定用户。
  • 获取密码永不过期的用户:可以获取AD中所有在用户属性中勾选了密码永不过期的用户。
  • 根据密码过期时间获取用户:您选择此项并点击运行后会弹出条件设置窗口,您只需要设置要查询的密码即将过期天数即可查询到符合条件的AD用户。

我认为这个功能对AD管理员来讲还是有一些用处的。

4. 新建用户:此功能用于批量创建新AD用户,从users.xlsx->newuser Sheet读取用户数据进行创建。您可以先到“设置->新建用户属性”中选择常用的属性并保存。对于保存到users.xlsx中的属性,如果您不想设置值,对该字段的值留空即可。以下一些特殊字段需要特别注意:

  • 如果您希望新建用户勾选“下次登录须更改密码”,您需要在“设置->新建用户属性”中勾选如下选项:
  • OU路径:如果您在设置中勾选了OU,则您在创建用户时需要在users.xlsx中输入的OU路径格式为”ou=deptou,dc=domain,dc=com”,如果您未勾选此项或此项值为空,工具会将新用户创建到“tempuserou”中,所以您必须先在AD中创建一个名为tempuserou的组织单位。
  • 密码:如果您未设置此项值,则工具默认会使用“abcD.1234”作为初始密码,您要注意此密码是否符合您的AD密码策略,您也可以自定义一个符合密码策略的新密码。
  • 用户主体名称UserPrincipalName(UPN):如果您不想用户的主体名称UPN使用默认的AD域名称,您必须在“设置->新建用户属性”中勾选UPN并只需在usres.xlsx->newuser Sheet中输入如 abc@abc.com ,然后新建的用户主体名称即会为 abc@abc.com。
  • AddtoGroups: 输入组的samAccountName,多个组以分号;分隔。
  • proxyAddresses:如果您要设置多个电子邮件地址,您需要输入类似于如下格式的数据:

SMTP:niletest@abc.com^smtp:niletest@nile.com

Or

SMTP:niletest@abc.com

如果您使用的是Exchange邮件系统,这个属性的值取决于您为用户邮箱设置了多少个电子邮件地址。

  • 姓名Name:对于新建用户,默认姓名Name属性值与显示名称Display Name相同,如果显示名称为空,则会与用户名samAccountName相同。
  • 经理Manager:设置经理属性时,您只需要设置经理的用户名samAccountName,如nilejiang。
  • 本地盘符HomeDrive:需要输入的格式为Z:
  • 国家Country, 国家缩写C, 国家代码CountryCode:如果您想设置用户的国家属性,您需要同时设置这三个属性的值,您可以从Sheet Country&C&CountryCodeList 看获得所有国家的这三个属性值。

在users.xlsx->newuser中输入用户属性信息后,在您点击“新建用户”后您可以载入新用户信息,然后点击“运行”创建新用户。但在创建新用户前,建议您先用“查看用户”检查这些用户是否已经存在。

5. 解锁用户:此功能用于批量解锁用户,您只需要输入用户名samAccountName,一个用户一行。您可以先用“查看用户”检查用户是否锁定,如果锁定,状态将会显示锁定并为红色。

6. 重置密码:此功能用于批量重置密码,您可以在自定义密码文本框中指定密码,如果没有指定,默认将重置密码为“abcD.1234”,您还可以通过下拉列表选择用户下次登录是否需要重置密码。

7. 禁用/启用用户:此功能用于批量禁用或启用用户,只需输入用户名samAccountName并选择“禁用用户”或“启用用户”即可。

8. 删除用户: 此功能用于批量删除用户,只需要输入用户名samAccountName。

9. 设置用户属性:此功能用于批量设置用户属性,您需要在users.xlsx->setprop表中输入用户信息,并有选择性的输入用户属性信息,如果属性值为空,则不会进行设置。您可以先在“设置->设置用户属性”中选择并保存常用的属性字段。

有一些属性需要特别注意。

  • 设置或清除用户属性:如果您要设置某个属性,只需要输入该属性的值,如果不设置属性,只需要对该属性值留空即可。如果您想清除某个属性的值,只需要将其值设置为clear,clear功能不适用于”NewPassword” 和 “NewOU”字段。
  • 帐户过期时间AccountExpires:如果您要设置帐户过期时间 AccountExpires,只需要输入标准日志格式,输入clear来设置帐户永不过期,留空为不设置。
  • 经理Manager:如果您要设置经理Manager属性, 只需要输入经理的用户名samAccountName即可。
  • 新组织单位NewOU:如果您想将用户移动到其他组织单位OU,您 可以使用NewOU,只需要输入新OU的路径即可,格式为OU=tempuserou,DC=abc,DC=com。如果您不想设置该属性,只需要将该属性值留空。
  • proxyAddresses:如果您想设置属性 proxyAddresses,只需要按如下格式进行输入:

SMTP:niletest@abc.com^smtp:niletest@nile.com

Or

SMTP:niletest@abc.com

如果您使用的是Exchange邮件系统,此属性的值为在Exchange中设置的用户邮箱的电子邮件地址属性,无需设置。

  • 本地盘符HomeDrive:如果您想设置本地盘符,如为用户挂载某个共享目录,此属性的值为盘符,只需要输入盘符Z:
  • 国家:如果您想设置国家属性,您需要设置用户的国家Country,国家简称c和国家代码CountryCode三个属性,此三个属性的对照列表可参考Sheet Country&C&CountryCodeList。

您在Sheet setprop设置了属性之后,当您点击“设置用户”时就会从此setprop中读取数据,点击运行及可进行设置。

10. 查看组:此功能用于批量查看组属性,需要输入组的samAccountName属性。

11. 添加用户到组:此功能用于批量添加用户到组,在左侧文本框中输入用户名samAccountName,右侧输入组名samAccountName,多个组以分号;分隔,然后点击运行即可。

12. 从组中删除:此功能用于批量从组中删除用户,使用方法同添加用户到组,多个组以分号;分隔。

13. 查看日志:所有您在ADBulkAdmin工具中做的操作都会被记录到数据库文件ADBATData.accdb。您可以使用查看日志进行搜索和查看,按日志或按管理员进行筛选。

14. 测试密码:AD管理员可以使用此功能批量检查用户是否使用了简单或默认的AD用户密码。您只需要输入用户列表samAccountName和密码列表即可。如果您的AD域策略中帐户锁定策略,您一定要慎重使用此功能,严格限制测试密码数量,否则错误尝试次数达到锁定阈值,将导致用户锁定,无法使用,当然您可以使用批量解锁用户功能进行解锁,测试操作会生成日志记录到域控安全日志中。如果用户已锁定或禁用,则不会被测试,如果密码已经测试成功,则不会再用后面的密码继续测试。此功能默认为被禁用,如果您需要使用请与我联系,也许您需要支付一点点以做支持。:)

15. 锁定/最后登录时间:作为AD管理员,有时我们需要查询用户锁定原因,在哪台域控锁定的,什么时候锁定的,进而到该域控上查看日志,以确认锁定源IP或工作站,进而判断是有人攻击还是在某台电脑记住了错误的密码。通过此功能可以查看到用户在所有域控上的锁定信息,可以获得用户在所有域控上的错误密码次数BadPwdCount,错误密码时间BadPasswordTime,上次重置密码时间PwdLastSet,帐户锁定时间LockoutTime,最后登录时间LastLogon,最后登录时间戳LastLogonTimeStamp和密码过期时间。您只需要输入用户名samAccountName,一次只能查询一个用户。

16. 导出到CSV:您在做任何操作时所获得的展示在datagridView中的数据都可以通过点击“文件->导出到CSV”来进行导出,如日志,查看用户获得的数据,从OU中获得的用户数据或获得的组成员信息等。

17. 检查更新:我会不断的更新这个工具,当想到好的功能,用户有新的需求或者发现bug,您可以通过“关于->检查更新”来查看工具是否有新版本,以确保您使用的是最新版本,您也可以关注微信公众号以及时获得最新版本的消息。

18. 捐助:到了本工具最重要的部分了,这是为AD管理员免费提供的AD批量管理工具,相信大部分功能已经足以满足大家的日常工作了。我们知道AD用户有很多属性,我只是引入了最常用的一些属性,如果您需要定制功能或属性,请与我联系,我已为众多国际用户定制过小功能。如果您想使用无锁版本的工具,或者您觉得此工具提高了您的工作效率和准确性,或者您就想表达对我的支持,请提供一点点实际支持,多少都无所谓,这将是对我的莫大鼓励,您也将永久获得无锁版本的使用权。捐助方式可通过“关于”中的微信捐助,或者通过捐助链接中的PayPal进行捐助。

附件中有更详细的图文并茂的操作手册,如果您需要定制功能或者您发现任何bug,请与我联系。 nilejiang#gmail.com

更新历史记录:

2016.3.13 v1.1.0.12

发布中文版。

2016.5.2  v1.1.0.13

修复了在ProfilePath属性中输入%username%变量时不会自动变为用户名的bug。添加了登录脚本(scriptPath)属性和密码永不过期到新建用户和设置用户属性功能中。添加重置密码时设置密码永不过期的选项。

2016.7.16  v1.1.0.14

修复了在添加到组等功能中用Ctrl+A不能全选文本框中的文字的问题,解锁“锁定/最后登录时间”功能,免费提供此功能。

2016.7.23  v1.1.0.15

修复了创建和设置用户属性时如果OU路径中包含特殊字符如/时失败的问题。同时解决查看用户时输入的用户名中包含特殊字符报错的问题。虽然用户名中本就不应该包含特殊字符。

2018.5.13  v1.1.0.21

将同版本的英文版汉化为中文版,对于查看、新建和设置用户以列表的方式选择并可以通过上下移动来调整在表格中显示的顺序。

2018.6.18 v1.1.0.22

增加了获取并导出用户所属组列表的功能。

2018.8.19 v1.1.0.23

增加了其他电话号码(otherTelephone)属性,优化了部分代码。

2018.11.25 V1.1.0.24

按用户需求添加新属性 division and info, 修复一个小bug-当属性中带有单引号时“‘”保存到数据库会报错。

2019.2.8 V1.1.0.25

添加从 OU中获取组,联系人和计算机,按天数获取不活动的计算机。

2019.3.3 V1.1.0.26

添加了属性extersionAttribute14, 添加了Script示例,请联系Nile获得。

2019.4.14 V1.1.0.27

在新建用户和设置用户属性中添加了属性Name(cn),可以单独设置Name(cn)的值。新建用户如果没有指定Name值,则与Display Name相同,如果未指定Display Name,则与samAccountName相同。

2019.5.12 V1.1.0.28

修改UPN的输入方式为完整属性 abc@abc.com ,添加新功能导出用户最后登录时间报告,可导出指定域控上的用户最后登录时间报告。

2019.5.19 V1.1.0.29

增加在导出用户最后登录时间报告的功能中显示用户是否是禁用状态,增加在创建用户时检测用户的UPN是否已经存在,避免发生异常。

2019.6.2 V1.1.0.30

按用户需求增加Middle Name属性。

2019.6.29 V1.1.0.31

修复了如果在设置->新建用户中选择了UPN,但是没有设置UPN的值,创建新用户时的报错问题。

2019.7.06 V1.1.0.32

修复了一些当用户Name或OU Name中包含特殊字符的bug,使用从组中获取用户功能时默认不加载所有组,因为有的组织中有上万个组。

2019.7.28 V1.1.0.33 调整一个label的显示位置,修复了一个小bug。

V1.1.0.34 修复了查询用户密码过期时间差一天的问题和密码过期天数的显示问题。

Scroll to top