我需要将displayName
和CN
属性与AD 中的givenName
和字段进行协调。surName
是否可以使用 Powershell获取givenName
和surName
并重命名和displayName
?CN
答案1
Powershell 在执行此类清理任务时确实表现出色。
Import-Module ActiveDirectory
$allUsers = Get-ADUser -Filter * -Properties cn,displayName
foreach ( $u in $allUsers | Where-Object { ($_.givenName) -and ($_.surName) } ) {
$fn = $u.givenName.Trim()
$ln = $u.surName.Trim()
Write-Host $fn $ln
Set-ADUser -Identity $u -DisplayName "$fn $ln" -GivenName "$fn" -SurName "$ln" -PassThru |
Rename-ADObject -NewName "$fn $ln"
}
注意事项:
- 我正在
Trim()
修改givenName
和surName
以删除前导/尾随空格。我们将这两个提交回帐户,并更正displayName
和cn
。 - 将您的范围限定
-Filter
为Get-ADUser
仅收集您想要的用户。*
将抓取每个人在域中,包括内置程序、管理员等。这可能不是您想要的。:) Where-Object
的部分将foreach
跳过不具有givenName
和surName
属性的用户对象。- 如果您需要使用重命名的用户对象,请
-PassThru
在行末尾添加一个Rename-ADObject
,然后该对象将被传回给您。