Моя организация хочет изменить формат отображаемого имени 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
. P.S. никаких предупреждений или ошибок не выдает, обновил AD.
Кто-нибудь знает, как изменить имя всех пользователей AD на Firstname Lastname
Displayname?
решение1
Проблема в фильтре. Строка (!displayName=*,*)
указывает, что только пользователь, который в данный моментнеимеют ,
в своем displayname должны быть изменены. Вы хотите обратное, поэтому вам нужно удалить !
.
Get-ADUser -LDAPFilter "(&(objectCategory=person)(displayName=*,*))" |
ForEach-Object {
Set-ADUser $_ -DisplayName "$($_.givenName) $($_.Surname)"
}