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

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

我需要将displayNameCN属性与AD 中的givenName和字段进行协调。surName

是否可以使用 Powershell获取givenNamesurName并重命名和displayNameCN

答案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"
}

注意事项:

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

相关内容