使用 csvde 在 AD 中批量导入导出用户(Dynamic CRM)
注:该命令无法导出、导入用户的密码
导出命令(请根据实际组织修改查询命令):
csvde -f user.csv -d "OU=orgname,DC=companyname,DC=com" -r "(objectClass=user)" -l "DN,objectClass,cn,sn,givenName,displayName,name,userAccountControl,sAMAccountName,userPrincipalName"
导入命令:
csvde -i -f user.csv
CSV 处理注意事项:
1、在 2: 无效语法 行添加出错,服务器边的错误为 "参数错误。"
清理 csv 中无用的属性列
2、读取属性表出错
检查末尾是否有空白列(最后不应该是逗号)
3、服务器边的错误为 "无法更新密码。为新密码提供的值不符合字符域的长度、复杂性或历史要求。"
因为 csvde 无法为用户设置密码,故需将 userAccountControl 列设为 514(禁用的账户)
其它可能的值见下图
4、服务器边的错误为 "指定的帐户已存在。"
已存在同名账户,在 csv 中删除即可
更多参考:https://blog.csdn.net/wulala112233/article/details/130340841
https://www.computerperformance.co.uk/logon/csvde-errors/
https://blog.csdn.net/qq_33997198/article/details/106336645
后续批处理:
# 取消登陆时必须修改密码,设置密码永不过期
Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=orgname,DC=companyname,DC=com" | Set-ADUser -ChangePasswordAtLogon $false -PasswordNeverExpires $true
# 设置密码
$password = ConvertTo-SecureString -AsPlainText NewPassword123 -Force
Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=orgname,DC=companyname,DC=com" | Set-ADAccountPassword -Reset -NewPassword ($password)
# 启用用户
Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=orgname,DC=companyname,DC=com" | Enable-ADAccount
参考:
https://learn.microsoft.com/zh-cn/powershell/module/activedirectory/enable-adaccount?view=windowsserver2019-ps
https://blog.51cto.com/jiushu/1664283
输了你,赢了世界又如何...