Renomeia o displayName e o CN do givenName e o surName com o Powershell?

7

Preciso reconciliar os atributos displayName e CN com os campos givenName e surName no AD.

É possível obter givenName e surName e renomear o displayName e CN usando o Powershell?

    
por colealtdelete 07.03.2013 / 22:25

1 resposta

11

O Powershell realmente brilha para tarefas de limpeza como essa.

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"
}

Advertências:

  1. Estou Trim() ing o givenName e surName para remover espaços iniciais / finais. Devolvemos esses dois para a conta, além de corrigir displayName e cn .
  2. Escopie seu -Filter in Get-ADUser para reunir apenas os usuários desejados. O * irá pegar todos no domínio, incluindo built-ins, admins, etc. Isso provavelmente não é o que você quer. :)
  3. A parte Where-Object do foreach irá ignorar objetos de usuário que não tenham o atributo givenName e surName .
  4. Se você precisar jogar com o objeto de usuário renomeado, adicione um -PassThru ao final da linha Rename-ADObject e o objeto será passado de volta para você.
por 07.03.2013 / 22:32