使用 Powershell 从 givenName 和 surName 重命名 displayName 和 CN?

col*_*ete 7 powershell active-directory

我需要将displayNameCN属性givenNamesurNameAD 中的和字段进行协调。

是否有可能采取givenNamesurName重命名这两个displayNameCN使用PowerShell?

jsc*_*ott 11

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"
}
Run Code Online (Sandbox Code Playgroud)

注意事项:

  1. 我正在Trim()使用givenNamesurName删除前导/尾随空格。我们将这两个提交回帐户,并更正displayNamecn
  2. 你的范围-FilterGet-ADUser只收集您需要的用户。这*将抓住域中的每个人,包括内置程序、管理员等。这可能不是您想要的。:)
  3. Where-Object部分foreach将跳过不具有 agivenNamesurName属性的用户对象。
  4. 如果您需要使用重命名的用户对象,请在行-PassThru尾添加一个Rename-ADObject,该对象将传回给您。