我需要协调displayName和CN属性到AD中的givenName和surName字段。
是否有可能采取givenName和surName并重命名显示名称和CN使用Powershell?
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()给定名称和surName删除前导/尾随空格。 我们将这两个返回到帐户,以及更正displayName和cn 。 Get-ADUser -Filter范围只收集您想要的用户。 *会抓住域中的所有人 ,包括内置的,pipe理员等。这可能不是你想要的。 🙂 foreach的Where-Object部分将跳过没有givenName和surName属性的用户对象。 -PassThru添加到Rename-ADObject行的末尾,并将该对象传回给您。