当前位置:网站首页 > Windows运维 > 正文

使用dsmod和dsget管理用户属性

作者:jinxijing发布时间:2019-03-04分类:Windows运维浏览:535


导读:使用dsmod和dsget管理用户属性《配置WindowsServer2008活动目录(MCTS教程)》第3章用户,章中将介绍如何使用工具和技术自动创建和管理用户和定...

使用dsmoddsget管理用户属性

《配置Windows Server 2008活动目录(MCTS教程)》第3章用户,章中将介绍如何使用工具和技术自动创建和管理用户和定位和操作用户对象和对象的属性。除此之外,还将介绍Microsoft Windows PowerShell,这是全新一代的,基于命令行模式的自动化Windows技术管理工具。我们将介绍执行大部分常见管理任务的不同实现方式。本节为大家介绍使用dsmoddsget管理用户属性。

 

使用dsmoddsget管理用户属性

dsmoddsget命令是两个Active Directory命令行工具,也叫DS命令。我们已经在第2章介绍了dsquery,并在本章第1课介绍了Dsadd

dsmod

dsmod可以修改现有对象的一个或多个属性。DS命令在第1课已经有一些简单的介绍,与其他DS命令类似,dsmod的基本语法是这样的:

  1. dsmod user UserDN ... parameters 

其中UserDN参数决定了要修改的用户的可分辨名称,其余参数则指定了要修改的属性和修改成的新值。例如,下列命令可以更改Tony Krijnenoffice属性:

  1. dsmod "cn=Tony Krijnen,ou=People,dc=contoso,
    dc=com" -office "Amsterdam

这些属性参数并不直接映射为用户对象的LDAP属性名。例如,DSMOD USER命令的dept参数可以修改用户对象的department属性。另外,DSMOD USER只能修改部分用户属性。要了解该命令可修改的属性列表,请输入并运行DSMOD USER /?

用管线将多个DN传递给dsmod

dsmod命令的UserDN参数并不需要直接输入到命令行中,但有其他两种方式可将DN用管线传递。首先可以在控制台中输入DN,假设需要更改两位用户Linda MitchellScott Mitchelloffice属性,以反映他们迁到悉尼办公室这件事,在命令行下,可以输入并运行下列命令:

  1. dsmod user -office "Sydney" 

这里并没有使用UserDN参数。控制台(也就是命令行窗口)会等待我们为用户输入DN。请在提示符后输入,并使用引号,在每个DN之后按下回车键。在输入最后一个DN并按下回车键后,在新一行的开始位置按快捷键Ctrl+Z,然后按下回车键,代表操作完成。随后命令会针对我们输入的每个DN执行一次操作。

DN传递给dsmod命令更高级的做法是将dsquery命令的结果在管线中传递。dsquery的使用在第2章有介绍,该工具可以在Active Directory中使用特定条件搜索,并返回匹配对象的DN。例如,要将LindaScott Mitchell帐户的office属性改为Sydney,可输入并运行下列命令:

  1. dsquery user -name "* Mitchell" | dsmod user -office "Sydney" 

DSMOD USER命令可以在Active Directory中搜索名称以"Mitchell"结尾的用户,而找到对象的DN会用管线传递给DSMOD USER,后者可将office属性改为悉尼。

另一个例子,假设希望为所有用户在SERVER01上指派主目录,即可使用下列命令更改People OU中每个用户的homeDirectoryhomeDrive属性:

  1. dsquery user "ou=People,dc=contoso,dc=com" | dsmod user  
  2. -hmdir "\\server01\users\%username%\documents" -hmdrv "U:" 

正如第1课提到的,在使用DS命令配置-email-hmdir-profile-webpg时,"%username%"可用于代表用户对象的sAMAccountName属性。

dsget

dsget命令可针对一个或多个对象获取并输出所选属性,其语法与dsmod类似:

  1. dsget user UserDN... parameters 

我们可以通过在命令行中指定的方式为一个或多个用户对象提供DN,不同DN需要使用空格分隔。或者也可以在控制台中直接输入,或将DSQUERY USER命令的结果用管线传递。与dsadddsmod不同,dsget只接受参数,并不接受相关的值。例如,dsget可以像dsadd一样接受"samid"参数,但并不接受参数的值。相反,该命令可以列出属性当前所具有的值。例如,要显示People OUJeff Ford当前使用的Windows 2000前登录名,即可使用下列命令:

  1. dsget user "cn=Jeff Ford,ou=People,dc=contoso,dc=com" -samid 

要显示悉尼办公室所有用户的Windows 2000前登录名,可使用下列命令:

  1. dsquery user -office "Sydney" | dsget user -samid