30 sierpnia 2020

Zmiana display name w Office 365

Jednym z pytań, które ostatnio się pojawia, to zmiana sortowania użytkowników w zespołach. Niestety domyślnie pole Display Name, które jest  wykorzystywane w sortowaniu użytkowników, jest tworzone na podstawie pól Imię i Nazwisko. Jednak administrator może zmienić wartość tego pola bez wpływu na działanie systemu. Można edytować każdego użytkownika indywidualnie, ale oczywiście prościej to zrobić z poziomu powershell. W tym celu możemy użyć pliku csv, użytego do importu danych uczniów i nauczycieli, lub dowolnego innego pliku csv, np. lista użytkowników wyeksportowana z panelu administracyjnego.


W tym celu możemy użyć prostego skryptu, który zaimportuje listę użytkowników z pliku i utworzy pole displayname z połączenia wartości pól z imieniem i nazwiskiem. W tym celu powinniśmy poniższy kod zapisać jako plik z rozszerzeniem ps1 (na przykład zmiana.ps1 w katalogu c:\Scripts) i uruchomić go z Powershella (pamiętajmy, żeby wcześniej zainstalować moduł MSOnline przy pomocy komendy install-module MSOnline jako administrator):

Import-Module Msonline

Connect-MsolService

#

# nagłówek pliku csv -> UserPrincipalName,Imie,Nazwisko

# jeżeli kolumny rozdzielone są znakiem ";" zamiast "," należy użyć przy imporcie atrybutu -Delimeter (import-csv domyślnie szuka ",")

#

$AllStudents = Import-CSV D:\Scripts\uczniowie.csv -Delimiter ";"

ForEach ($student in $AllStudents)

{

$DisplayName = $student.Nazwisko+" "+$student.Imie

$currentstudent = get-MsolUser -UserPrincipalName $student.UserPrincipalName

set-MsolUser -ObjectId $currentstudent.ObjectId -Displayname $DisplayName

}

Kod skryptu dostępny również na moim githubie. Możemy również bezpośrednio przetworzyć atrybuty obiektów w naszej organizacji, bez użycia pliku csv wykonując nieco zmodyfikowany skrypt:
Import-MsolService
Connect-MsolService

$Allusers = get-MsolUSer

ForEach ($user in $Allusers)
{
$DisplayName = $user.LastName+" "+$user.FirstName
Set-MsolUser -ObjectId $user.ObjectId -Displayname $DisplayName
}

Jeżeli pole DisplayName chcemy uzupełnić o dodatkowy atrybut, np. rocznik ucznia, to w pliku csv musimy dodać jeszcze jedną kolumnę, o nazwie np. Rok i zmienić w skrypcie wiersz, tworzący pole:

$DisplayName = $student.Nazwisko+" "+$student.Imie + " " + $student.Rok

Oczywiście najpierw powinniśmy zainstalować odpowiedni moduł do zarządzania Office 365. O modułach niezbędnych dla Office 365 pisałem już wcześniej na swoim blogu:

Brak komentarzy: