AD维护管理工具详解六ds系列命令.docx
《AD维护管理工具详解六ds系列命令.docx》由会员分享,可在线阅读,更多相关《AD维护管理工具详解六ds系列命令.docx(7页珍藏版)》请在冰豆网上搜索。
![AD维护管理工具详解六ds系列命令.docx](https://file1.bdocx.com/fileroot1/2022-10/7/43e53a88-4e54-4499-b84a-bfeddfafd4bc/43e53a88-4e54-4499-b84a-bfeddfafd4bc1.gif)
AD维护管理工具详解(六)ds系列命令
2010-11-0315:
25:
30
标签:
ds详解命令工具维护管理
一、Dsadd用于在特定的目录分区上创建ActiveDirectory对象类的实例。
这些类包括用户、计算机、联系人、组、组织单位和配额。
Dsadd具备一个由下列内容组成的通用语法:
dsaddattributes
请注意,您创建的每个对象类型都有一组特定的开关,它们与该类型的属性相对应。
以下命令创建一个填充了各种属性的用户对象(请注意以下所有内容位于一行):
dsaddusercn=afuller,ou=IT,dc=contoso,dc=com
–samIDafuller–fnAndrew–lnFuller–pwd*
-memberOfcn=IT,ou=Groups,dc=contoso,dc=com"cn=HelpDesk,ou=Groups,
dc=contoso,dc=com"–desc"MarketingDirector"
–memberOf开关要求指定应添加该用户的每个组的完整可分辨名称(DN);如果要将用户添加到多个组,您可以添加多个DN并用空格分隔开。
任何元素如果包含空格(如HelpDesk组的DN),则该元素应该括在双引号中。
如果某个元素含有反斜杠(如称为IT\EMEA的OU),则必须输入两次反斜杠:
IT\\EMEA。
(这些要求适用于所有的ds*工具。
)
如果使用-pwd*开关,则系统将提示您在命令行输入用户密码。
您可以在该命令中指定密码(-pwdP@ssword1),但是这样会在屏幕上或该命令嵌入到的任何文本或脚本文件中以纯文本形式显示该密码。
同样,您可以使用下列两个命令创建组对象和OU:
复制代码
dsaddcomputercn=WKS1,ou=Workstations,dc=contoso,dc=com
dsaddou"ou=TrainingOU,dc=contoso,dc=com"
二、Dsmod
Dsmod用于修改现有对象,它的使用方法与dsadd非常相似,您需要根据要修改的对象的类型使用不同的子菜单和语法。
以下dsmod语句会更改用户的密码并修改该用户的帐户,因此在下次登录时系统会提示该用户更改为新的密码:
dsmoduser"cn=afuller,ou=IT,dc=contoso,dc=com"–pwdP@ssw0rd1–mustchpwdyes
要了解这些开关多么相似,您可以查看要用于创建此用户并配置了相同属性的dsadd语法:
dsadduser"cn=afuller,ou=IT,dc=contoso,dc=com"–pwdP@ssw0rd1–mustchpwdyes
您可以清晰地看到,如果知道dsadd中用于创建对象的开关,则可以使用那些相同的开关修改dsmod用户。
三、dsrm
dsrm与dsadd是相逆的;正如您可能想到的,使用此工具可从命令行中删除对象。
基本的dsrm语法相当简明:
只需输入dsrm后输入要删除对象的可分辨名称即可,如下所示:
dsrmcn=WKS1,ou=Workstations,dc=contoso,dc=com
默认情况下,dsrm会提示“确实要删除此对象吗?
”,此时键入Y,然后按Enter。
您可以使用–noprompt开关禁止显示此提示,但很明显,这样做无法在删除对象之前确认所选对象是否正确。
如果要删除容器对象(即,在其内部可能包含其他对象的组织单位),另外两个开关可能会很有用。
以下命令将删除TrainingOU组织单位及其内部包含的所有对象:
dsrmou=TrainingOU,dc=contoso,dc=com–subtree
以下命令将删除包含在TrainingOU中的所有子对象,但保留组织单位对象本身:
dsrmou=TrainingOU,dc=contoso,dc=com–subtree–exclude
四、dsmove
要移动或重命名ActiveDirectory中的对象,请使用dsmove工具,但请注意您只应使用该工具在单一域中移动对象。
要在域和林之间迁移对象,请使用ActiveDirectory迁移工具(ADMT),可从Microsoft网站免费下载。
Dsmove依赖于两个开关,它们可以单独使用,也可以结合在一起使用。
以下命令将为SteveConn的帐户指定新姓氏:
dsmove"cn=Conn,Steve,ou=IT,dc=contoso,dc=com"–newname"SteveConn"
以下命令将Steve的帐户从ITOU移动到TrainingOU:
dsmove"cn=Conn,Steve,ou=IT,dc=contoso,dc=com"–newparentou=Training,dc=contoso,dc=com
以下命令将Steve的帐户从ITOU移动到TrainingOU:
dsmove"cn=Conn,Steve,ou=IT,dc=contoso,dc=com"–newparentou=Training,dc=contoso,dc=com
您可以通过同时指定这两个开关,将重命名和移动合并为一个操作,如下所示:
dsmove"cn=Conn,Steve,ou=IT,dc=contoso,dc=com"–newname
"SteveConn"–newparentou=Training,dc=contoso,dc=com
五、Dsget和Dsquery
ds*命令行工具集还包括两个用于查询ActiveDirectory获取信息而非用于创建或修改对象的工具。
Dsget将对象的DN作为输入并为您提供您指定的一个或多个属性的值。
Dsget使用与dsadd和dsmod相同的子菜单—user、computer、contact、group、ou和quota。
要获得用户帐户的SAM帐户名和安全标识符(SID),请键入以下命令(请注意以下所有内容位于一行):
dsgetusercn=afuller,ou=IT,dc=contoso,dc=com–samAccountName–sid
您将会得到如图所示的输出。
Dsquery将返回一个符合您指定条件的ActiveDirectory对象的列表。
无论您使用的是哪个子菜单,都可以指定以下参数:
dsquery-s-o
对于ObjectType,dsquery可以使用以下子菜单,每个子菜单都具有自己的语法:
computer、contact、subnet、group、ou、site、server(请注意,服务器子菜单检索有关域控制器的信息,而不是环境中的任一成员服务器)、user、quota和partition。
如果其中一个查询类型不符合需要,您可以使用*子菜单,这样您可以输入任意格式的LDAP查询。
StartNode指定搜索在ActiveDirectory树中的开始位置。
您可以使用特定的DN,如ou=IT、dc=contoso、dc=com或下列其中一个快捷说明符:
domainroot,从特定域的根目录开始;forestroot,从使用全局编录服务器执行搜索的林根域的根目录开始。
最后,“搜索范围”选项指定dsquery搜索ActiveDirectory树的方式。
Subtree(默认方式)查询指定的StartNode及其所有子对象;onelevel仅查询StartNode的直接子项;base仅查询StartNode对象。
为了更好地理解搜索范围,假定有一个OU,其中包含用户对象和一个子OU,该子OU自身又包含其他对象。
使用subtree范围将查询该OU、包含在该OU内的所有用户对象和子OU及其内容。
onelevel范围仅查询包含在OU中的用户而不查询子OU及其内容。
base查询仅搜索OU本身而不查询其中包含的任何对象。
最后,您可以使用OutputFormat控制如何设置dsquery的结果的格式。
默认情况下,dsquery将返回与查询相匹配的所有对象的可分辨名称,如下所示:
"cn=afuller,ou=Training,dc=contoso,dc=com"
"cn=rking,ou=ITTraining,ou=Training,dc=contoso,dc=com"
要查询ITOU和任意子OU中包含的所有用户对象,请使用以下命令:
dsqueryuserou=IT,dc=contoso,dc=com
您可以通过添加其他开关进一步细化此查询,如-disabled(仅返回已禁用的用户帐户)、-inactivex(仅返回在过去x周或更久未登录的用户)或-stalepwdx(仅返回在x天内或更久未更改其密码的用户)。
依据目录中对象的数目,在运行查询时您可能需要指定-limitx开关。
默认情况下,dsquery将会返回多达100个与查询细节相匹配的对象。
您可以指定更大的数目(如-limit500),或使用-limit0指示dsquery返回所有匹配对象。
也可以使用其他子菜单执行对其他对象类型的有用查询。
考虑以下查询,此查询将返回在ActiveDirectory站点和服务中定义的位于10.1.x.x地址空间中的每个子网:
dsquerysubnet–name10.1.*
或使用以下命令返回位于Corp站点中的每个子网:
dsquerysubnet–siteCorp
使用另一个子菜单,您可以很快确定林中配置为全局编录服务器的域控制器的数量:
dsqueryserver–forest–isgc
您还可以使用此语法帮助确定域中哪个域控制器承载主域控制器(PDC)模拟器灵活单主机操作(FSMO)角色:
dsqueryserver–hasfsmopdc
与其他包含子菜单的ds*命令一样,您可以转到命令提示符并键入dsqueryuser/?
、dsquerycomputer/?
、dsquerysubnet/?
等查看特定dsquery子菜单中可用的所有开关。
另一个灵活的技巧是使用管道字符(在美式键盘上按下shift的同时按反斜杠即可)将dsquery的输出通过管道传送到其他工具(如dsmod)中。
例如,假设您的公司已将Training部门重命名为InternalDevelopment,现在您必须将每位相关用户的说明字段从旧部门名称更改为新名称。
在单一命令行上,您可以查询具有Training的说明字段的用户对象,然后批量修改该说明字段,如下所示:
dsqueryuser–description"Training"|dsmod -description"InternalDevelopment"