批量修改用户属性的几种方式:
- dsmod
- Set-ADUser
- 使用ADManager Plus解决方案
dsmod
使用dsmod /? 查看帮助:
dsmod computer - 修改目录中现有的计算机。
dsmod contact - 修改目录中现有的联系人。
dsmod group - 修改目录中现有的组。
dsmod ou - 修改目录中现有的组织单位。
dsmod server - 修改目录中现有的 AD DC/LDS 实例。
dsmod user - 修改目录中现有的用户。
dsmod quota - 修改目录中现有的配额规定。
dsmod partition - 修改目录中现有的分区规定。
若要查找特定命令的帮助,请键入 "dsmod <ObjectType> /?",其中
<ObjectType> 是以上所示的受支持对象类型之一。
例如,dsmod ou /?。
备注:
dsmod 命令支持输入的管道,以允许你
通过管道输入 dsquery 命令的结果,作为 dsmod 命令的输入,
然后修改 dsquery 命令所找到的对象。
在可分辨名称中不是用作分隔符的逗号必须用
反斜杠("\")字符转义(例如,
"CN=Company\, Inc.,CN=Users,DC=microsoft,DC=com")。
在可分辨名称中使用的反斜杠必须用反斜杠转义
(例如,
"CN=Sales\\ Latin America,OU=Distribution Lists,DC=microsoft,DC=com")。
示例:
在组织单位(OU)查找所有用户 "ou=Marketing,dc=microsoft,dc=com" 并把
他们添加到 Marketing Staff 组:
dsquery user startnode "ou=Marketing,dc=microsoft,dc=com" |
dsmod group "cn=Marketing Staff,ou=Marketing,dc=microsoft,dc=com" -addmbr
从示例中得知,我们可以结合dsquery和dsmod一起使用。
那么如果是修改用户邮箱属性的我们就可以使用dsquery查询到的用户作为dsmod的输入,例如
dsquery user -name adm | dsdom user -email [email protected]
这样就将adm用户的电子邮件改为了[email protected]。
批量更改用户有电子邮件属性,只需做一个bat批处理即可。
Set-ADUser
这也需要结合另外一个命令Get-ADUser一起使用,更加方便。
Get-ADUser -Filter * -SearchBase "OU=Manager,DC=ademo,DC=com" -Properties * | Select-Object -Property SamAccountName, mail | Export-Csv -Encoding UTF8 c:\user.csv
使用Get-ADUser将Manager OU中的用户登录属性以及电子邮件属性导出到c:\user.csv文件。 编辑该文件,得到类似格式的csv文件
修改邮箱之后,再导入
Import-Csv -Path C:\sample.csv | foreach { Get-ADUser -Identity $_.SamAccountName |Set-ADUser -email $_.mail}
这样用户的电子邮件属性就被修改了。
使用ADManager Plus解决方案
使用该解决方案就简单方便了很多,比如现在如果要将某个OU中的所有用户邮箱,改为bj.+名+_+姓的格式。
搜索这个OU中所有的用户或某个特定的用户,应用这个格式的邮件就可以了。