Windows Server 2022 AD 域批量创建,修改和删除用户账户 方法三:使用DSadd导入
- Windows
- 2024-10-15
- 361热度
- 0评论
一、DSadd命令介绍说明
对于如何批量创建用户,网络上已经有不少相关的贴子教程,但大多都是使用csvde及ldifde命令创建的贴子文章,经过测试,发现使用这种方法创建用户并不方便,步骤多而且较为复杂。那么有没有一种既简单又快捷的方法呢?那就是DSADD命令,直接运行批处理即可实现一键批量创建。当然,创建虽方便快捷,但前期的信息收集也是需要时间的,下面就为大家介绍下dsadd的使用。
首先在使用DSADD之前我们先来了解一下LDAP协议,目录服务使用LDAP这个公用协议来查找和定位对象,LDAP可以描述对象在那个域,对象在那个OU,对象自己的名字。通常它的语法为“OU=OU对象,CN=非域非OU对象,DC=域对象”。比如:CN=xd,OU=Sales,OU=Yanfabui,DC=yinhai-blog,DC=com
接下来我们来看一看DSADD的语法:
1、新建一个对象 用dsadd <user | ou | group > 2、修改一个对象 用dsmod <user | ou | group > 3、查找一个对象 用dsquery <user | ou | group > 4、移动一个对象 用dsmove 5、删除一个对象 用dsrm 6、将计算机添加到目录 用dsadd computer 7、将联系人添加到目录 用dsadd contact 8、将组添加到目录 用dsadd group 9、将组织单位添加到目录 用dsadd ou
直接在根目录键入dsadd可以看到命令的说明
二、使用DSadd批量添加用户
Dsadd 用于在特定的目录分区上创建 Active Directory 对象类的实例。这些类包括用户、计算机、联系人、组、组织单位和配额。Dsadd 具备一个由下列内容组成的通用语法:
dsadd <ObjectType> <ObjectDistinguishedName> attributes
请注意,创建的每个对象类型都有一组特定的开关,它们与该类型的属性相对应。以下命令创建一个填充了各种属性的用户对象(请注意以下所有内容位于一行):
即完整的批处理写法为:(在空白记事本里输入)
dsadd user cn=林先生,ou=总经办,dc=yinhai-blog,dc=com -upn Mr.Ling@yinhai-blog.com -pwd P@ssw0rd -display 林先生 -fn 先生 -ln 林 -dept 总经办 -title 总经理 -tel 6181 -email Mr.Ling@yinhai-blog.com -mustchpwd no -pwdneverexpires yes -disabled no -samid Mr.Ling
2.1 创建一个新的组织单元(OU)
2.2 编写脚本
创建研发用户,设置用户密码,并启用这些用户账号
Dsadd user “CN=yanfa001,OU=Yanfabu,DC=yinhai-blog,DC=com” -upn yanfa001@yinhai-blog.com -pwd P@ssw0rd -display 研发用户001 -disabled no
Dsadd user “CN=yanfa002,OU=Yanfabu,DC=yinhai-blog,DC=com” -upn yanfa002@yinhai-blog.com -pwd P@ssw0rd -display 研发用户002 -disabled no
Dsadd user “CN=yanfa003,OU=Yanfabu,DC=yinhai-blog,DC=com” -upn yanfa003@yinhai-blog.com -pwd P@ssw0rd -display 研发用户003 -disabled no
其他用户内容即按照这个模板来进行修改,然后用管理员权限打开cmd,将以下粘贴到cmd窗口,执行。
2.3 查看用户是否创建成功
提示成功,去Active Directory用户和计算机中,查看三个用户已经创建完成。
同样,您可以使用下列两个命令创建组对象和 OU:
代码如下
dsadd computer CN=WKS1,OU=Workstations,DC=yinhai-blog,DC=com
dsadd ou "OU=Training OU,DC=yinhai-blog,DC=com"
三、使用DSmod修改用户信息
Dsmod 用于修改现有对象,它的使用方法与 dsadd 非常相似,您需要根据要修改的对象的类型使用不同的子菜单和语法。以下 dsmod 语句会更改用户的密码并修改该用户的帐户,因此在下次登录时系统会提示该用户更改为新的密码,并添加电话号码:
先确认一下研发用户001这个账号的信息
用管理员权限打开cmd,执行如下命令
dsmod user "cn=yanfa001,ou=Yanfabu,dc=yinhai-blog,dc=com" –pwd P@ssw0rd1 –mustchpwd yes -tel 15388888888
提示成功,去Active Directory用户和计算机中,查看研发用户001的信息是否更改
重新登研发用户001时,提示必须修改密码
要了解这些开关多么相似,您可以查看要用于创建此用户并配置了相同属性的 dsadd 语法
四、使用DSrm删除用户
dsrm 与 dsadd 是相逆的;正如您可能想到的,使用此工具可从命令行中删除对象。基本的 dsrm 语法相当简明:只需输入 dsrm 后输入要删除对象的可分辨名称即可,如下所示:
dsrm cn=yanfa001,ou=Yanfabu,dc=yinhai-blog,dc=com
默认情况下,dsrm 会提示“确实要删除此对象吗?”,此时键入 Y,然后按 Enter。
您可以使用 –noprompt 开关禁止显示此提示,但很明显,这样做无法在删除对象之前确认所选对象是否正确。除非你非常确定的要删除这个用户。
如果要删除容器对象(即,在其内部可能包含其他对象的组织单位),另外两个开关可能会很有用。
以下命令将删除 Training 组织单位及其内部包含的所有对象:
dsrm ou=Training,dc=yinhai-blog,dc=com –subtree
以下命令将删除包含在 Yanfabu 中的所有子对象,但保留组织单位对象本身:
先确认一下,yanfbu是否有用户
执行命令
dsrm ou=Yanfabu,dc=yinhai-blog,dc=com –subtree –exclude
五、使用dsmove移动或重命名
要移动或重命名 Active Directory 中的对象,请使用 dsmove 工具,但请注意您只应使用该工具在单一域中移动对象。要在域和林之间迁移对象,请使用 Active Directory 迁移工具 (ADMT),可从 Microsoft 网站免费下载。Dsmove 依赖于两个开关,它们可以单独使用,也可以结合在一起使用。以下命令将为 Steve Conn 的帐户指定新姓氏: dsmove "cn=Conn, Steve,ou=IT,dc=yinhai-blog,dc=com" –newname "Steve Conn" 以下命令将 Steve 的帐户从 IT OU 移动到 Training OU: dsmove "cn=Conn, Steve,ou=IT,dc=yinhai-blog,dc=com"–newparent ou=Training,dc=yinhai-blog,dc=com
以下命令将 Steve 的帐户从 IT OU 移动到 Training OU:dsmove "cn=Conn, Steve,ou=IT,dc=yinhai-blog,dc=com" –newparent ou=Training,dc=yinhai-blog,dc=com
您可以通过同时指定这两个开关,将重命名和移动合并为一个操作,如下所示: dsmove "cn=Conn, Steve,ou=IT,dc=yinhai-blog,dc=com" –newname "Steve Conn" –newparent ou=Training,dc=yinhai-blog,dc=com
六、Dsget 和 Dsquery
ds* 命令行工具集还包括两个用于查询 Active Directory 获取信息而非用于创建或修改对象的工具。 Dsget 将对象的 DN 作为输入并为您提供您指定的一个或多个属性的值。Dsget 使用与 dsadd 和 dsmod 相同的子菜单 — user、computer、contact、group、ou 和 quota。 要获得用户帐户的 SAM 帐户名和安全标识符 (SID),请键入以下命令(请注意以下所有内容位于一行): dsget user cn=afuller,ou=IT,dc=yinhai-blog,dc=com –samAccountName –sid
您将会得到如图所示的输出。
Dsquery 将返回一个符合您指定条件的 Active Directory 对象的列表。无论您使用的是哪个子菜单,都可以指定以下参数: dsquery <ObjectType> <StartNode> -s <Search Scope> -o <OutputFormat>
对于 ObjectType,dsquery 可以使用以下子菜单,每个子菜单都具有自己的语法:computer、contact、subnet、group、ou、site、server(请注意,服务器子菜单检索有关域控制器的信息,而不是环境中的任一成员服务器)、user、quota 和 partition。如果其中一个查询类型不符合需要,您可以使用 * 子菜单,这样您可以输入任意格式的 LDAP 查询。 StartNode 指定搜索在 Active Directory 树中的开始位置。您可以使用特定的 DN,如 ou=IT、dc=contoso、dc=com 或下列其中一个快捷说明符:domainroot,从特定域的根目录开始;forestroot,从使用全局编录服务器执行搜索的林根域的根目录开始。 最后,“搜索范围”选项指定 dsquery 搜索 Active Directory 树的方式。Subtree(默认方式)查询指定的 StartNode 及其所有子对象;onelevel 仅查询 StartNode 的直接子项;base 仅查询 StartNode 对象。 为了更好地理解搜索范围,假定有一个 OU,其中包含用户对象和一个子 OU,该子 OU 自身又包含其他对象。使用 subtree 范围将查询该 OU、包含在该 OU 内的所有用户对象和子 OU 及其内容。onelevel 范围仅查询包含在 OU 中的用户而不查询子 OU 及其内容。base 查询仅搜索 OU 本身而不查询其中包含的任何对象。 最后,您可以使用 Output Format 控制如何设置 dsquery 的结果的格式。默认情况下,dsquery 将返回与查询相匹配的所有对象的可分辨名称,如下所示: "cn=afuller,ou=Training,dc=yinhai-blog,dc=com" "cn=rking,ou=ITTraining,ou=Training,dc=yinhai-blog,dc=com"
要查询 IT OU 和任意子 OU 中包含的所有用户对象,请使用以下命令: dsquery user ou=IT,dc=yinhai-blog,dc=com
您可以通过添加其他开关进一步细化此查询,如 -disabled(仅返回已禁用的用户帐户)、-inactive x(仅返回在过去 x 周或更久未登录的用户)或 -stalepwd x(仅返回在 x 天内或更久未更改其密码的用户)。 依据目录中对象的数目,在运行查询时您可能需要指定 -limit x 开关。默认情况下,dsquery 将会返回多达 100 个与查询细节相匹配的对象。您可以指定更大的数目(如 -limit 500),或使用 -limit 0 指示 dsquery 返回所有匹配对象。 也可以使用其他子菜单执行对其他对象类型的有用查询。考虑以下查询,此查询将返回在 Active Directory 站点和服务中定义的位于 10.1.x.x 地址空间中的每个子网: dsquery subnet –name 10.1.*
或使用以下命令返回位于 Corp 站点中的每个子网: dsquery subnet –site Corp
使用另一个子菜单,您可以很快确定林中配置为全局编录服务器的域控制器的数量: dsquery server –forest –isgc
您还可以使用此语法帮助确定域中哪个域控制器承载主域控制器 (PDC) 模拟器灵活单主机操作 (FSMO) 角色: dsquery server –hasfsmo pdc
与其他包含子菜单的 ds* 命令一样,您可以转到命令提示符并键入 dsquery user /?、dsquery computer /?、dsquery subnet /? 等查看特定 dsquery 子菜单中可用的所有开关。 另一个灵活的技巧是使用管道字符(在美式键盘上按下 shift 的同时按反斜杠即可)将 dsquery 的输出通过管道传送到其他工具(如 dsmod)中。例如,假设您的公司已将 Training 部门重命名为 Internal Development,现在您必须将每位相关用户的说明字段从旧部门名称更改为新名称。在单一命令行上,您可以查询具有 Training 的说明字段的用户对象,然后批量修改该说明字段,如下所示: