Festlegen des standardmäßigen UPN-Suffix zum Erstellen neuer Benutzer in Active Directory

12

Gibt es eine Möglichkeit, das standardmäßige UPN-Suffix für das Erstellen neuer Benutzer eines Active Directory festzulegen?

Wenn ich beispielsweise "corp.meinedomain.com" als AD-Domain habe und unter "Domains and Trusts" ein alternatives UPN-Suffix "mydomain.com" hinzugefügt habe, kann diese Domain beim Erstellen einer neuen Domain als Standarddomäne festgelegt werden Benutzer?

Ich weiß, dass ich nur einen Vorlagenbenutzer erstellen kann. Wenn ich ihn kopiere, hat er das richtige Standardsuffix, ist aber nur neugierig, ob es eine versteckte Einstellung gibt, die dies steuert.

Adam Brand
quelle

Antworten:

8

Es gibt keinen dokumentierten Mechanismus, mit dem ich das standardmäßige UPN-Suffix ändern kann, das von Active Directory-Benutzern und -Computern ausgewählt wird. Ich glaube, dass das Tool fest verdrahtet ist, um den ersten Teil des Attributs "canonicalName" zu übernehmen, das im Objekt "crossRef" für die in "CN = Partitions, CN = Configuration, ..." angegebene Domäne in Ihrer Gesamtstruktur definiert ist.

AD-Benutzer und -Computer sind zu diesem Zweck einfach nur fest verdrahtet. Wenn Sie Benutzerkonten auf andere Weise erstellen (z. B. "NET USER ... / add"), wird dem Konto kein userPrincipalName-Attribut zugewiesen. Das standardmäßige UPN-Suffix ist eigentlich nur ein Standard in AD Users and Computers, kein Standard des Verzeichnisdienstes.

Sollte der Microsoft-KB-Artikel mit einem Skript angezeigt werden, das Ihnen zeigt, wie Sie das standardmäßige UPN-Suffix programmgesteuert abrufen ( http://support.microsoft.com/default.aspx?scid=kb;en-us;Q269441 ), Beachten Sie, dass das Skript einige Syntaxfehler enthält (Zeilen 17 und 32 sind fehlerhaft und srrNamingContext in Zeile 32 sollte strNamingContext lauten). Ich werde eine feste Version mit einer geringfügigen Verbesserung am Ende dieses Beitrags einfügen (sie zeigt Ihnen die Namen der einzelnen Organisationseinheiten, in denen zusätzliche UPN-Suffixe definiert werden könnten).

Ich würde gerne von jemandem korrigiert werden, der sich besser auskennt als ich, aber ich sehe keine Möglichkeit, AD-Benutzer und -Computer dazu zu bringen, sich anders zu verhalten.

' --- Get the naming contexts ----
Set RootDSE = GetObject("LDAP://RootDSE")
strNamingContext = RootDSE.Get("defaultNamingContext")
strConfigContext = RootDSE.Get("configurationNamingContext")

' -- Get the current domain name --
Set oDomain = GetObject("LDAP://" + strNamingContext)
strDomainName = oDomain.Get("name")

Set oPartition = GetObject("LDAP://CN=Partitions," & strConfigContext)

'-- Get the DNS name of the domain --
oDomain.GetInfoEx Array("canonicalName"), 0
strCanonical = oDomain.Get("canonicalName")
strDNSName = Left(strCanonical, Len(strCanonical) - 1) 'clip off "/"

'-- Display the default UPN suffix
wscript.echo strDNSName

'-- Get the defined upnSuffixes --
suffixes = oPartition.GetEx("UPNSuffixes")
For Each upnSuffix In suffixes
  wscript.echo upnSuffix
Next
Set RootDSE = Nothing
Set oDomain =Nothing
Set oPartition = Nothing

' -- Get the upnsuffixes defined on organizational units --
Set ADOconn = CreateObject("ADODB.Connection")
Set ADOcom = CreateObject("ADODB.Command")

ADOconn.Provider = "ADsDSOObject"
bstrADOQueryString = "<LDAP://" + strNamingContext + ">;(objectcategory=organizationalUnit);upnsuffixes,ADsPath;subtree"
wscript.echo bstrADOQueryString 
ADOconn.Open
ADOcom.ActiveConnection = ADOconn

ADOcom.CommandText = bstrADOQueryString
ADOcom.Properties("Page Size") = 99

Set objRS = ADOcom.Execute

While Not objRS.EOF
   If Not IsNull(objRS.Fields("upnSuffixes")) Then
    upnsuffixes = objRS.Fields("upnSuffixes")
    For Each upnsuffix In upnsuffixes
        wscript.echo objRS.Fields("adsPath") & " - Suffix: " & upnsuffix
    Next
   End If

   objRS.MoveNext
Wend

Set objRS = Nothing
Set ADOcom = Nothing
Set ADOconn = Nothing
Evan Anderson
quelle
Ich hatte gehofft, es gäbe einen Registrierungseintrag oder so. Ich werde dies als korrekt markieren, wenn sich in den nächsten 24 Stunden niemand anders anmeldet.
Adam Brand
In unserem Fall führen wir ein tägliches Skript aus, das den UPN jedes Benutzers überprüft und ihn in Standard ändert, wenn er keine Standardbenennung hat. Dieses Skript überprüft viele Attribute und korrigiert sie bei Bedarf.
KAPes
@KAPes: Das ist eine nette Idee. An Standorten, an denen mehrere delegierte AD-Administratoren Benutzerkonten erstellen, habe ich normalerweise Skripts bereitgestellt, um die meisten Aufgaben bei der Bereitstellung zu erledigen. Trotzdem konnte ich sehen, dass einige LDAP-Abfragen mit Skripten erstellt wurden, um "Hey, Dummy - Sie haben das falsch bereitgestellt!" E-Mails (oder offensichtlich, um Dinge automatisch zu reparieren, wenn der Computer über genügend Informationen verfügt, um dies automatisch zu tun).
Evan Anderson
Evans Antwort ist immer noch richtig. Einige haben auch vorgeschlagen, das Attribut uPNSuffixes in der Organisationseinheit festzulegen. Dies überschreibt einfach die Liste der in der Domäne festgelegten uPNSuffixe, verwendet jedoch weiterhin standardmäßig den kanonischen Namen der Domäne.
Charleswj81
8

Soweit ich weiß, ist dies nicht möglich (Evans Antwort ist auch nach 4 Jahren noch richtig).

Trotzdem habe ich ein Skript geschrieben, das alle paar Stunden auf mehr als einem Client im Taskplaner ausgeführt wird. Es sucht nach einem bestimmten Suffix (in den meisten Fällen der Standard) und wechselt zu einem anderen. Das Skript ist in meinem Blog, aber ich werde es auch hier posten :)

Import-Module ActiveDirectory


Get-ADUser -Filter {UserPrincipalName -like "*@ad.example.com"} -SearchBase "OU=SomeUserOu,DC=ad,DC=example,DC=com" |
ForEach-Object {
    $UPN = $_.UserPrincipalName.Replace("ad.example.com","example.com")
    Set-ADUser $_ -UserPrincipalName $UPN
}

In diesem Fall werden Benutzer, die mit einem ad.example.comUPN-Suffix erstellt wurden, mit einem Suffix aktualisiert example.com.

MDMarra
quelle
Ich musste darüber nachdenken, AD-Änderungsbenachrichtigungen zu verwenden, um so etwas in Echtzeit zu erledigen, aber das wäre ein alberner Overkill.
Evan Anderson
1
UPN wird mit den O365- und Dirsync-Anforderungen für ADFS SSO immer wichtiger. Sie würden denken, es wäre schon etwas eingebrannt :)
MDMarra
Manchmal denke ich , ich bin die einzige Person , die tatsächlich mit Microsoft-Produkten. > smile <Ich bereite mich darauf vor, meine erste Office365-Implementierung in den nächsten Wochen durchzuführen (vollständig mit Hybrid-Onsite- / Offsite-Exchange), damit ich bald den ganzen Spaß mit ADFS-SSO und DirSync erleben kann genug.
Evan Anderson
Ich mache O365 nicht direkt (wir haben ein paar Kollegen im Team), aber ich habe einige Intune-Arbeiten durchgeführt, bei denen derselbe Azure-Mandanten-AD verwendet wird. Ich hoffe, Ihre erste Fahrt ist flüssiger als meine :)
MDMarra
Beim Hinzufügen einer Notiz, bei der bei .Replace die Groß- und Kleinschreibung beachtet wird, stimmt der UserPrincipalName also nicht mit der Zeichenfolge von "ad.example.com" überein. Dies kann sein, dass zuerst eine .toLower () -Methode wie folgt hinzugefügt wird: $ UPN = $ _. UserPrincipalName.toLower (). Replace ("ad.example.com", "example.com")
Chad Rexin
0

Sie können die zulässigen UPN-Suffixe festlegen, indem Sie ADSIEDIT.MSC aufrufen, die OU-Struktur aufrufen, mit der rechten Maustaste auf die OU klicken (in der Standardkonfiguration) und die OU-Attribute bearbeiten. Das zu bearbeitende OU-Attribut ist UPNSuffixes. Dies wirkt sich jedoch nicht auf den Standard-UPN aus, der einem Benutzer zugewiesen ist, der in dieser Organisationseinheit erstellt wurde. Fügen Sie der Liste das gewünschte UPN-Suffix hinzu. Erstellen Sie als Nächstes einen Vorlagenbenutzer zum Kopieren. Klicken Sie mit der rechten Maustaste auf die Organisationseinheit, erstellen Sie einen neuen Benutzer, der als Vorlage verwendet werden soll, weisen Sie das richtige UPN-Suffix zu, und klicken Sie dann mit der rechten Maustaste auf den erstellten Benutzer, und deaktivieren Sie das Konto. Um einen neuen Benutzer zu erstellen, klicken Sie mit der rechten Maustaste auf den Vorlagenbenutzer und kopieren Sie ihn. Füllen Sie die ausgewählten Felder aus, und der neue Benutzer wird mit dem richtigen UPN erstellt. Erstellen Sie mehrere Vorlagenbenutzer für die verschiedenen UPNS. Oder wechseln Sie im Zweifelsfall zu Powershell.

Justin Robbins
quelle
-3

Tatsächlich können Sie im Active Directory-Modul für Powershell Folgendes ausführen: Set-ADOrganizationalUnit "OU = XXX, DC = Domäne, DC = com" -Add @ {upnsuffixes = "@ UPNSuffix.com".

Oder Sie könnten eine "Get-adorganizationalUnit" mit einer -Filter-Option verwenden und diese an eine "Set-ADOrganizationalUnit -Add @ {upnsuffixes =" @ UPNSuffix.com "" weiterleiten.

Ich fand das nach einer Weile, also hoffe ich, dass es jedem hilft.

Herb Huddleston
quelle
Bei der Frage geht es darum, das Standardsuffix für das Hinzufügen neuer Benutzer festzulegen, nicht das Hinzufügen eines Upn-Suffix.
Austin
-4

Dieser Technet-Artikel beschreibt, wie Sie UPN-Suffixe in Ihrer Domain hinzufügen oder entfernen:

http://technet.microsoft.com/en-us/library/cc756018(WS.10).aspx

Es gibt hier auch eine Diskussion darüber:

http://technet.microsoft.com/en-us/library/cc739093(WS.10).aspx

Ich kann nicht persönlich dafür bürgen, da ich das noch nie machen musste, aber eines fällt mir ein. Wenn Sie dies tun, müssen Sie berücksichtigen, dass AD zwar ordnungsgemäß funktioniert, dies jedoch möglicherweise nicht für die Software von Drittanbietern der Fall ist, die davon ausgeht, dass das UPN-Suffix immer das Standard-Suffix ist . Überlegen Sie sich die Konsequenzen genau, bevor Sie die Änderung vornehmen.

Maximus Minimus
quelle
2
Ja, ich kann UPN-Suffixe hinzufügen. Meine Frage war zum Festlegen des Standardsuffix für das Hinzufügen neuer Benutzer.
Adam Brand