UserPrincipalName (UPN)

Es ist eine gute Idee, wenn der UPN, die primäre Mailadresse und auch die SIP-Adresse des Benutzers identisch sind. Ansonsten können diverse Integrationsfunktionen, Autodiscover etc. nicht automatisch funktionieren.

Beachten Sie dazu auch Office 365:UPN / Anmeldename

2475891 Description of the Office Outlook 2007 hotfix package (Outlook-x-none.msp): February 22, 2011
2412171 Description of the Office Outlook 2007 Update: January 11, 2011
Hotfix 2412171 ändert das Standardverhalten, dass Outlook den UPN statt der primären SMTP-Adresse für Autodiscover verwendet.
Hinweis: Addieren Sie einfach den UPN als zusätzliche sekundäre SMTP-Adresse, damit Autodiscover wieder funktioniert
2512788 Description of the Office Outlook 2007 hotfix package (Outlook-x-none.msp): April 26, 2011

Viele Administratoren legen Benutzer an und geben wie schon seit vielen Jahren auch einen Kontonamen ein. Auch die meisten Anwender können schon lange das Anmeldeschema mit DOMÄNE\USERNAME. Aber seit Windows 2000 kann man sich auch über einen "UserPrincipalName" anmelden, welcher die Form "user@upnsuffix" hat. Das sehen Sie schon immer auf der Karteikarte beim Benutzer:

UPN beim Benutzer

Der user Logon Name ist der Teil vor dem UPN-Suffix und eine Zeile darunter steht der alte NT4 Anmeldename (SamAccountName). Interessant sind hier zwei Dinge:

  • UPN Suffix ist änderbar, die Domäne nicht
    Firmen ändern vielleicht ihren Namen oder werden konsolidiert. Den UPN kann man sogar bei Migrationen beibehalten und auch an aktuelle Namen anpassen, ohne dass Profil, Berechtigungen o.ä. verloren gehen würden.
  • UPN Suffix und Mailadresse können gleich sein
    Der UPNSuffix ist nicht an den Namen des Active Directory oder die Domäne gebunden, sondern kann ziemlich frei vergeben werden. Es bietet es sich gerade zu an, hier die Mailadresse des Benutzers zu verwenden, um dem Anwender die Anmeldung zu vereinfachen. Normalerweise kennt ein Anwender seine Mailadresse.

Anmelden mit UPN

Wenn Sie sich an einem PC anmelden, sehen sie gewöhnlich den klassischen Anmeldedialog.

Anmeldedialog ohne Domäne

Der normale Anwender sieht also nicht einmal die Domäne, was besonders in Umgebungen mit mehreren Domains natürlich zu Fehlern führen kann. Wenn Sie "Options" auswählen oder die Anmeldung fehlschlägt, dann zeigt ihnen Windows den erweiterten Anmeldedialog. Oft erkennen die dann hier, dass der vorherige Anwender vielleicht die falsche Domäne hinterlassen hat. (Tipp: per Gruppenrichtlinien können Sie die "DefaultDomain" vorgeben).

Anmeldedialog mit Domain

Interessant wird es aber, wenn Sie im Feld für den Anmeldenamen nach dem ersten Teil ein "@" eintippen. In dem Moment wird die Domäne "grau" und damit nicht mehr auswählbar.

Anmeldung mit UPN

Das ist auch nicht erforderlich, da Windows nun einen UPN erwartet. Und den passenden Benutzer dazu findet der Anmeldedienst sowieso im globalen Katalog.

UPN Suffix

Für den Administrator stellt sich nun natürlich die Frage, wo die UPNs gepflegt werden, welche dann beim Benutzer ausgewählt werden können. Dazu muss man "Enterprise Administrator" sein, um über die Active Directory Domänen und Vertrauensstellungen" die UPN Suffixe für die Gesamtstruktur (Forest) zu pflegen:

UPN Suffix pflegen

Erst dann tauchen nach einer kurzen Zeit (Replikation abwarten) auch die neu eingegebenen UPN Suffixe bei den Benutzern zur Auswahl auf:

Allerdings kann ein Benutzer immer nur "GENAU EINEN" Anmeldenamen haben. Es gibt also keine Option, mehrere Anmeldenamen zu verwenden.

Die Information steht im Active Directory Feld "UserPrincipalName", welches eigentlich ein Freitext ist. Es ist daher denkbar, direkt beim Anwender auch andere Namen zu verwenden, aber davon rate ich natürlich ab.

UPN prüfen

Es bietet sich natürlich an, regelmäßig die Einträge von MAIL und UserPrincipalName zu prüfen. Dazu habe ich ein kleines PowerShell Skript geschrieben, welches Sie z.B. per Taskplaner regelmäßig starten können.

check-upn.1.0.ps1

Sie können es einfach auf der PowerShell aufrufen. Es verbindet sich mit dem GC und sucht alle "normalen" Benutzer mit einer Mailadresse und vergleicht diese mit dem Feld "MAIL", welches in der Regel die primäre SMTP-Adresse enthält.

Die Daten werden in eine PIPE ausgegeben, so dass Sie mit " | export-csv datei.csv" die Liste auch in einer CSV-Textdatei schreiben können.

Konsoleausgabe von Check-UPN

Unstimmigkeiten werden mit "write-warning" sowohl auf die Konsole geschrieben, als auch in das Eventlog.

Check-UPN Eventlog meldnug

So können Sie das Skript auf dem Server regelmäßig laufen lassen und die Events mit einer Überwachungssoftware kontrollieren. Natürlich können Sie das Skript noch erweitern, so dass Sie eine Mail bekommen.

Das Skript ändert aber nicht die Einträge und prüft auch nicht, ob die verwendeten UPNs global konfiguriert sein. Mit ADModify.NET können solche Felder aber sehr einfach für viele Personen gesetzt werden.

Eine einfachere Version mit Hilfe der Exchange Commandlets und weniger Funktionen fällt etwas kürzer aus:

foreach ($user in get-user) {
	write-host processing $user.samaccountname -nonewline
	[string]$sam = $user.samaccountname
	[string]$upn = "$sam@meinedomain.tld"
	if ($user.UserPrincipalName -eq $upn){
		write-host " UPNOK: $upn" -background green -foreground black
	}
	else {
		write-host " UPNFIX:$upn" -backgroundcolor yellow
		set-user -identity $sam -UserPrincipalName $upn
	}
}

Das Skript setzt einfach stumpf den UPN auf den SAM-Accountname und ergänzt ihn um "@meinedomain.tld". Das muss natürlich angepasst werden.

Aber auch mit Bordmitteln lassen sich erste einfache Checks durchführen:

REM Anzeige von doppelten UPNs mit SetSPN
c:\>setspn.exe -T * -x

Weitere Links