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?
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?
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 givenNameund surName, um führende / nachfolgende Leerzeichen zu entfernen. Wir verpflichten diese beiden zurück auf das Konto sowie zu korrigieren displayNameund cn.-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. :) :)Where-ObjectTeil von foreachüberspringt Benutzerobjekte, die nicht sowohl ein givenNameals auch ein surNameAttribut haben.-PassThruam Ende der Rename-ADObjectZeile ein hinzu, und das Objekt wird an Sie zurückgegeben.