Ich muss die Attribute displayName
und CN
mit den Feldern givenName
und surName
in AD abgleichen.
Ist es möglich , zu übernehmen givenName
und , surName
und benennen Sie sowohl das displayName
und CN
mit Powershell?
Ich muss die Attribute displayName
und CN
mit den Feldern givenName
und surName
in AD abgleichen.
Ist es möglich , zu übernehmen givenName
und , surName
und benennen Sie sowohl das displayName
und CN
mit Powershell?
Antworten:
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:
Trim()
das givenName
und surName
, um führende / nachfolgende Leerzeichen zu entfernen. Wir verpflichten diese beiden zurück auf das Konto sowie zu korrigieren displayName
und cn
.-Filter
in, Get-ADUser
um 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. :) :)Where-Object
Teil von foreach
überspringt Benutzerobjekte, die nicht sowohl ein givenName
als auch ein surName
Attribut haben.-PassThru
am Ende der Rename-ADObject
Zeile ein hinzu, und das Objekt wird an Sie zurückgegeben.