DisplayName und CN von Vorname und Nachname mit Powershell umbenennen?

7

Ich muss die Attribute displayNameund CNmit den Feldern givenNameund surNamein AD abgleichen.

Ist es möglich , zu übernehmen givenNameund , surNameund benennen Sie sowohl das displayNameund CNmit Powershell?

colealtdelete
quelle

Antworten:

11

Powershell glänzt wirklich für solche Aufräumarbeiten.

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

Vorsichtsmaßnahmen:

  1. Ich bin Trim()das givenNameund surName, um führende / nachfolgende Leerzeichen zu entfernen. Wir verpflichten diese beiden zurück auf das Konto sowie zu korrigieren displayNameund cn.
  2. Scope your -Filterin, Get-ADUserum nur die gewünschten Benutzer zu sammeln. Das *wird jeden in der Domain packen , einschließlich eingebauter, Admins usw. Dies ist wahrscheinlich nicht das, was Sie wollen. :) :)
  3. Der Where-ObjectTeil von foreachüberspringt Benutzerobjekte, die nicht sowohl ein givenNameals auch ein surNameAttribut haben.
  4. Wenn Sie mit dem umbenannten Benutzerobjekt spielen müssen, fügen Sie -PassThruam Ende der Rename-ADObjectZeile ein hinzu, und das Objekt wird an Sie zurückgegeben.
jscott
quelle