Wir haben so viele Accounts für Schülerinnen und Schülern, dass es immer mal wieder vorgekommen ist, dass zwei oder mehrere den gleichen Namen haben. Um die Accounts auseinanderzuhalten, habe ich die Lehreroffice ID in der Beschreibung im lokalen AD hinterlegt (vgl. diesen Beitrag).
Auf unserem Weg, die lokalen Server abzulösen und cloud only zu gehen, habe ich die Verbindung zwischen lokalem AD und Azure AD über Azure AD Connect beendet. Neu muss die Verwaltung der User und Gruppen direkt im Azure AD erfolgen. Nun habe ich festgestellt, dass die Eigenschaft Beschreibung gar nicht ins Azure AD übernommen wird. Da der Zugang zu den lokalen Servern noch besteht, konnte ich eine CSV Datei mit dem Accountnamen und der Beschreibung erstellen.
Einmal mehr musste ich das Rad nicht neu erfinden, da irgendjemand eine perfekte Lösung schon veröffentlicht hat. In diesem Beitrag ist ein Skript veröffentlicht, das genau mein Problem löst. Vielen Dank an Manfred de Laat.
Ich habe die Spaltenköpfe im CSV entsprechend angepasst:
Department;UserPrincipalName
Sogar den Strichpunkt, den Excel statt dem Komma in der CSV Datei erstellt, kann man dank Manfreds Lösung stehen lassen, das kannte ich bisher noch nicht. Hier nochmals das Skript, mit meinen wenigen Anpassungen:
#Connect to Azure AD
Connect-AzureAD
# Get CSV content
$CSVrecords = Import-Csv LeoIDSchueler.csv -Delimiter ";"
# Create arrays for skipped and failed users
$SkippedUsers = @()
$FailedUsers = @()
# Loop trough CSV records
foreach ($CSVrecord in $CSVrecords) {
$upn = $CSVrecord.UserPrincipalName
$user = Get-AzureADUser -Filter "userPrincipalName eq '$upn'"
if ($user) {
try{
$user | Set-AzureADUser -Department $CSVrecord.Department
} catch {
$FailedUsers += $upn
Write-Warning "$upn user found, but FAILED to update."
}
}
else {
Write-Warning "$upn not found, skipped"
$SkippedUsers += $upn
}
}
# Array skipped users
# $SkippedUsers
# Array failed users
# $FailedUsers