colealtdelete Asked: 2013-03-08 13:25:43 +0800 CST2013-03-08 13:25:43 +0800 CST 2013-03-08 13:25:43 +0800 CST 使用 Powershell 从 givenName 和 surName 重命名 displayName 和 CN? 772 我需要将displayName和CN属性与AD中的givenName和字段协调。surName 是否可以同时使用givenName和surName重命名Powershell?displayNameCN active-directory 1 个回答 Voted Best Answer jscott 2013-03-08T13:32:48+08:002013-03-08T13:32:48+08:00 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将跳过不具有 agivenName和surName属性的用户对象。 如果您需要使用重命名的用户对象,-PassThru请在该行的末尾添加一个,Rename-ADObject该对象将传回给您。
Powershell 非常适合执行此类清理任务。
注意事项:
Trim()
删除前导/尾随空格givenName
。surName
我们将这两个提交回帐户,并更正displayName
和cn
。-Filter
将您的范围限定Get-ADUser
为只收集您想要的用户。这*
将抓住域中的每个人,包括内置插件、管理员等。这可能不是您想要的。:)Where-Object
部分foreach
将跳过不具有 agivenName
和surName
属性的用户对象。-PassThru
请在该行的末尾添加一个,Rename-ADObject
该对象将传回给您。