批量管理域账户
2018-11-07
批量创建域普通账户
在创建普通域账户时,管理员需要打开Active Dirextory用户和计算机窗口,在合适的OU中创建账户。但在大型网络中,有时需要创建大量的账户,利用Csvde、PowerShell命 令,Ldifde以及Net命令,可以批量添加普通域账户。这里就以Ldifde工具为例进行说明。使用该工具之前,需要创建所需的用户配置文件。
例如,创建名为“pldr.txt”的文件,其中包含所需的账户信息,在其中逐 行 输 入“DN:cn=用 户甲,OU=depart1,DC=xxx,DC=com”,“changetype:add”,“objectclass:user”,“sAMAccountName:userjia”、“userPrincipalName:userjia@xxx.com”、“displayname:开发部某员工”、“userAccount control :514”、“physicalDeli very Name:某写字楼某层某号”等,创建名为“userjia”的账户。
显示名称为“用户甲”,隶属于名为“dapart1”的 OU,用户主体名称USN为“userjia@xxx.com”,域名为“xxx.com”,工作地点为“某写字楼某层某号”。同理,可以分别输入其他账户的信息。注意,两个账户之间需要存在空行。在CMD窗口中执行“ldifde -i -f d:pldr.txt -j d:”命 令,可以将上述用户信息导入到活动目录数据库中,同时在D盘下创建名为“ldfif”的日志文件。执行“dsquery user”命令,可以查询所有的域账户信息,可以看到已经批量创建了所需的账户。注意,在默认状态下,批量创建的账户处于禁用状态。
批量删除和修改账户
对于上述批量创建账户,可以很轻松地进行批量删除。打开上述名为“pldr.txt”的文件,将不需要删除的账户信息删除,之后针对每个剩余的账户,只保留前两行,第一行不变,将第二行修改为“changetype:delete”。 再次执行“ldifde -i -f d:pldr.txt -j d:”命令,就可以批量删除了。如果是批量修改账户属性,例如修改用户名和USN信息,可以打开上述“pldr.txt”文件,只保留需要修改的账户,只保留前两行,将第二行修改为修改为“changetype:modify”。
图1 新建查询窗口
之后输入“replace:displayname”、“displayname:开发部主管”、“replace:user Principal Name”、“-”,“userPrincipalName:zhuguan@xxx.com”之 类 的语句。之后执行以上命令,即可完成修改。当然,使用系统自带的“NET”命令,同样可以批量创建和删除账户,例如执行“for /L %a in (1,1,50)do net user newzh%a passw@rd /add /domain”命令,可以创建名称以“newzh”开头的以数字编号的,密码为“passw@rd”的50个账户。对应的,执行“for /L %a in (1,1,50)do net user newzh%a /del/domain”命令,可以批量删除这些账户。
批量解锁域账户
由于某些原因可能会造成有些账户被锁定。在默认情况下,锁定的周期为30分钟,在此期间被锁定的账户是无法登录域环境的。有时管理员需要快速找到这些被锁定的账户,进行批量解锁。打开Active Directory用户计算机窗口,在左侧的“保存的查询”项上点击右键,在弹出菜单中点击“新建→查询”项,在新查询窗口(如图1)中输入名称(例如“查找锁定的账户”),选择“包括子容器”项。
点击“定义查询”按钮,在查找一般性查询窗口中的“用户”面板中选择“禁用的账户”项,点击“确定”,在“查询的字符串”栏中显示所需的查询语句。执行以上操作后,就会显示所有被禁用的账户,选中后,在右键菜单上点击“启用账户”项,即可解除其锁定状态。当然,也可以在CMD窗口中执行“dsquery user -disabled |dsmod user-disabled no”命令,可以查找并解锁所有被锁定的账户。注意,对于Guest和Krbtgt账户,需要使其处于锁定状态。
批量更改客户端管理员密码
对于客户端主机来说,使用者一般都具有管理员权限。但是,在域环境中,需要对客户端的配置进行统一管理,是不希望在本地使用管理员账户登录的。解决的方法是,在域控上打开组策略管理器,在左侧选择“林→域→域名”,在“Default Domain Policy”项的右键菜单上点击“编辑”,在编辑窗口左侧选择“用户配置→首选项→控制面板设置→本地用户和组”项,在右侧窗口的右键菜单上点击“新建→本地用户”项,在打开窗口(如图2)中的“用户名”列表中选择“administrator”,在“密码”栏中输入新的密码,点击“确定”,完成修改操作。
这样,当客户机以管理员身份进行本地登录时,就会被系统拦截。为了立即生效,需要在客户端执行“gpeudate /force”刷新组策略。为了让用户在登录时必须登录到域环境,可以在上述组策略编辑窗口中打开“计算机配置→策略→Windows设置→安全设置→本地策略→用户权限分配”项,在右侧双击“允许本地登录”项,在打开窗口中删除所需账户,这样,该账户就无法在本地登录了。
图2 新建本地账户窗口
批量恢复误删的域账户
在Windows Server 2008之后的系统中,已内置了禁止删除域账户的功能,但如果管理员在创建域账户没有开启该功能,依然会出现误删的情况。账户恢复可以使用在线恢复和离线恢复功能。离线恢复需要在事先备份活动目录数据库,而且需要让域控暂停工作。在线恢复则没有这些约束。
例 如,可 以 使 用ADRecycleBIn这款小工具在线恢复,在主界面中的“Load Filter(Object Types)”栏中选择“User and Computers”,针对活动目录数据库中的账户和计算机进行恢复。在“Delete Objects”列表中显示删除的所有对象,在需要恢复账户的右键菜单上点击“Restore Object”,可 以 恢 复 该账户。也可以批量选择所有需要恢复的账户,点击“Restore Checked Objects”来执行批量恢复。
批量清理垃圾账户
及时清除垃圾账户,可以让活动目录数据库变得更精简。在CMD窗口中执行“dsquery user -inactive 10”,可 以 显 示 10周 内 没有登录的用户信息。执行“dsquery user -inactive 10 | dsmod user -disabled yes”命令,可以禁用这些账户。执行“dsquery user-disabled |dsrm”命令,来清理这些垃圾账户。
也可以使用上面的方法,批量查找和选择这些禁用的账户。在右键菜单上点击“删除”,将其批量删除即可。管理员可根据需要设置密码最长使用期限,打开上 述“Default Domain Policy”项的编辑窗口,选择“计算机配置→策略→Windows设置→安全设置→账户策略→密码策略”项,在右侧双击“密码最长使用期限”,可以将其设置为合适的时间值。这样,就可以判断哪些是长期不使用的账户。
批量查看域账户密码更新信息
管理员需要及时开启密码复杂性策略,让用户在规定的周期内,按照复杂度要求更新密码。管理员根据需要查看密码更新信息。在域控上打开Active Directory用户和计算机窗口,点击“查看→高级功能”,选择某个账户,在属性窗口中的“属性编辑器”面板中的“pwdLastSet”栏中显示最近修改密码的事件。批量查询,可以在PowerShell窗口中执 行“Get-ADUser -Filter* -Properties * |select name,pwdlastset”命令,显示所有账户最近修改密码的事件信息。
图3 集中修改账户信息
批量映射网络驱动器
在网络中部署了文件服务器后,可以共享目录映射为网络驱动器,方便客户端使用。手工映射比较繁琐,我们可以使用自动映射。对于单个用户,可以使用多种方法来实现。例如目标共享路径为“filesrvdata”,可 以 在 PowerShell窗 口 中 执 行“Set-ADUser -HomeDirectory:"\filesrvdata" -HomeDrive: "K:" -Identity user1”命,可以针对“User1”账户将上述共享路径映射为网络驱动器K盘。如果想批量映射,可以执行“dsquery user -name new*| demod user -hmdrv k: -hndir\filesrvdata”,这 样,可以针对所有名称以“new”开头的账户进行映射。当这些账户登录域环境时,可以自动得到该网络驱动器。
批量更新账户属性
域账户拥有很多属性,创建域账户时,属性信息是不完整的,需要根据情况不断地完善。除Ldifde批量更新账户属性外,还可以在Active Directory用户和计算机窗口中选择多个账户,在右键菜单上点击“属性”,在打开窗口(如图3)中的“常规”、“账户”、“地 址”、“配 置文件”和“组织”面板中统一更新属性信息。如在“账户”面板中可以针对UPN后缀、登录事件、计算机限制以及各种账户选型等进行统一调整。如果是修改批量单一的账户属性,也可以使用命令行来实现。如在CMD窗口中执行“dsquery user ou=kaifa,dc=xxx,dc=com |dsmod user -pwd qwe@.com”,针对名为“kaifa”的OU中的所有账户统一修改密码为“qwe@.com”。