将 AD 显示名称从 Lastname, Firstname 更改为 Firstname Lastname

将 AD 显示名称从 Lastname, Firstname 更改为 Firstname Lastname

我的组织希望将显示名称格式更改Firstname LastnameLastname, Firstname

我已经在 ADSI 设置中更改了创建新用户的格式。但想将所有当前用户的显示名称更改为Firstname Lastname

我在以下位置找到一个脚本:Active Directory 中的默认全名格式

Get-ADUser -LDAPFilter "(&(objectCategory=person)(!displayName=*,*)(displayName=*))" |
ForEach-Object {  
    Set-ADUser $_ -DisplayName "$($_.Surname), $($_.givenName)"
}

这将它从 更改为Firstname LastnameLastname, Firstname我想做一个反向操作,因此我将这个脚本调整为:

Get-ADUser -LDAPFilter "(&(objectCategory=person)(!displayName=*,*)(displayName=*))" |
ForEach-Object {  
    Set-ADUser $_ -DisplayName "$($_.givenName) $($_.Surname)"
}

但是我的 AD 用户仍然具有类似的显示名称Lastname, Firstname。PS 没有给出任何警告或错误,并在 AD 中进行了刷新。

有人知道将所有 AD 用户更改为显示名称的技巧吗Firstname Lastname

答案1

问题在于过滤器。字符串(!displayName=*,*)表示只有当前其显示名称中有 的,应该更改。您想要相反的结果,因此您需要删除!

Get-ADUser -LDAPFilter "(&(objectCategory=person)(displayName=*,*))" |
ForEach-Object {  
    Set-ADUser $_ -DisplayName "$($_.givenName) $($_.Surname)"
}

相关内容