我的组织希望将显示名称格式更改Firstname Lastname
为Lastname, Firstname
我已经在 ADSI 设置中更改了创建新用户的格式。但想将所有当前用户的显示名称更改为Firstname Lastname
我在以下位置找到一个脚本:Active Directory 中的默认全名格式
Get-ADUser -LDAPFilter "(&(objectCategory=person)(!displayName=*,*)(displayName=*))" |
ForEach-Object {
Set-ADUser $_ -DisplayName "$($_.Surname), $($_.givenName)"
}
这将它从 更改为Firstname Lastname
。Lastname, 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)"
}