Minha organização deseja alterar o formato do nome de exibição para Firstname Lastname
em vez deLastname, Firstname
Já alterei o formato de criação de novos usuários nas configurações ADSI. Mas deseja alterar o nome de exibição de todos os usuários atuais paraFirstname Lastname
Encontrei um script em:Formato de nome completo padrão no Active Directory
Get-ADUser -LDAPFilter "(&(objectCategory=person)(!displayName=*,*)(displayName=*))" |
ForEach-Object {
Set-ADUser $_ -DisplayName "$($_.Surname), $($_.givenName)"
}
Isso muda de Firstname Lastname
para Lastname, Firstname
. Quero fazer o inverso, então ajustei esse script para:
Get-ADUser -LDAPFilter "(&(objectCategory=person)(!displayName=*,*)(displayName=*))" |
ForEach-Object {
Set-ADUser $_ -DisplayName "$($_.givenName) $($_.Surname)"
}
Mas meus usuários do AD ainda têm um nome de exibição como Lastname, Firstname
. PS não dá nenhum aviso ou erro e fez uma atualização no AD.
Alguém conhece um truque para alterar todos os usuários do AD Firstname Lastname
como Displayname?
Responder1
O problema é o filtro. A string (!displayName=*,*)
indica que apenas o usuário que atualmentenãotêm um ,
em seu nome de exibição devem ser alterados. Você quer o inverso, então precisa remover o !
.
Get-ADUser -LDAPFilter "(&(objectCategory=person)(displayName=*,*))" |
ForEach-Object {
Set-ADUser $_ -DisplayName "$($_.givenName) $($_.Surname)"
}