私の組織では、表示名の形式をFirstname Lastname
次のように変更したいと考えています。Lastname, Firstname
ADSI設定で新規ユーザーを作成するための形式をすでに変更しています。しかし、現在のすべてのユーザーの表示名を次のように変更したいです。Firstname Lastname
次のスクリプトを見つけました:Active Directory のデフォルトのフルネーム形式
Get-ADUser -LDAPFilter "(&(objectCategory=person)(!displayName=*,*)(displayName=*))" |
ForEach-Object {
Set-ADUser $_ -DisplayName "$($_.Surname), $($_.givenName)"
}
Firstname Lastname
これにより、がに変わりますLastname, Firstname
。逆の操作を実行したいので、このスクリプトを次のように調整します。
Get-ADUser -LDAPFilter "(&(objectCategory=person)(!displayName=*,*)(displayName=*))" |
ForEach-Object {
Set-ADUser $_ -DisplayName "$($_.givenName) $($_.Surname)"
}
しかし、私の AD ユーザーの表示名はまだ のようになっていますLastname, Firstname
。PS は警告やエラーを表示せず、AD で更新を実行しました。
Firstname Lastname
すべての AD ユーザーをDisplaynameに変更する方法を知っている人はいますか?
答え1
問題はフィルターです。文字列は(!displayName=*,*)
、現在しない表示名に が含まれている場合,
は、 を変更する必要があります。 逆のことをしたいので、 を削除する必要があります!
。
Get-ADUser -LDAPFilter "(&(objectCategory=person)(displayName=*,*))" |
ForEach-Object {
Set-ADUser $_ -DisplayName "$($_.givenName) $($_.Surname)"
}