Active Directory-Benutzernamen: Warum variiert der kanonische Name? Kann ich etwas tun, um sie einheitlich zu machen?

10

Ich bin ein autodidaktischer Administrator eines aktiven Active Directory-Netzwerks, das für Windows-Anmeldungen auf ~ 30 PCs verwendet wird. Ich habe das System von jemand anderem geerbt, der auch keine direkte Microsoft-Schulung hatte, und daher bin ich in einigen Dingen im Dunkeln.

Das Netzwerk selbst verfügt über einen einzelnen Windows Server 2008 R2-Computer, der als Domänencontroller, DNS, Dateifreigaben usw. fungiert. Anmeldungen funktionieren einwandfrei, aber ich habe beim Deaktivieren alter Konten in der Liste der Benutzer gestöbert und etwas bemerkt, das ich nicht ganz verstehe .

Hier sind einige Beispielbenutzerkonten:

  1. Anmeldename: john
    Vorname: John
    Nachname: Smith
    Anzeigename: John Smith
    Kanonischer Name des Objekts: domain.com/Users/john

  2. Anmeldename: bob
    Vorname: Bob
    Nachname: Französisch
    Anzeigename: Bob Französisch
    Kanonischer Name des Objekts: domain.com/Users/Bob Französisch

Der aktuelle Domänencontroller wurde von einem anderen ausgetauscht, unter dem Windows Server 2003 ausgeführt wurde. Das erste Beispielkonto wurde erstellt, als die Server 2003-Box DC war, das zweite wurde erstellt, als die neuere Server 2008 R2-Box DC war. Warum unterscheidet sich der kanonische Name und macht er einen Unterschied?

Ich ärgere mich hauptsächlich über die Tatsache, dass meine Benutzerliste im Active Directory-Browser die Hälfte der Konten als "Vorname" und die Hälfte als "Vorname Nachname" enthält.

Kann ich etwas tun, um alle gleich zu machen, ohne die Arbeitskonten zu beschädigen?

böse Löffel
quelle
Speichern Sie die Benutzer tatsächlich in der domain.com/UsersOrganisationseinheit? Oder ist es nur ein Beispiel?
Mathias R. Jessen
Ja, sie befinden sich alle unter domain.com/Users/ zusammen mit einer Reihe von Sicherheitsgruppen. Ist das eine schlechte Praxis? Soll ich sie bewegen? Kann ich sie bewegen, ohne alles zu zerstören?
böse Löffel
2
Wenn Sie keine externen Anwendungen haben, die einfache Bindungen zur Authentifizierung verwenden, können Sie diese sicher verschieben - und das sollten Sie auch. Es bietet eine viel bessere Kontrolle über die Gruppenrichtlinien-Appliance, um sie von den bekannten Sicherheitsgruppen zu trennen. Ich werde die Antwort aktualisieren, um dies ebenfalls abzudecken
Mathias R. Jessen
2
Dies hängt davon ab, wie viele Objekte sich in Ihrer AD befinden und wie Sie sie organisieren möchten. Im Allgemeinen ist es besser, sie in Organisationseinheiten zu platzieren, um sie besser zu organisieren und Gruppenrichtlinienobjekte auf sie anzuwenden, und es wird als bewährte Methode angesehen, die Standardcontainer (z. B. "Benutzer") in Ruhe zu lassen.
Massimo

Antworten:

8

Active Directory befasst sich nicht wirklich damit, wie sich die RDN des Benutzerkontoobjekts (der letzte Teil des Canonical-Namens) auf andere Eigenschaften wie den Anzeigenamen oder den Anmeldenamen bezieht - solange der Wert jedes einzelnen Attributs nicht gegen das verstößt Schemadefinition.

Das Verhalten des Formulars "Neuer Benutzer" in Active Directory-Benutzern und -Computern (sowie in einer Reihe anderer Dialoge) hat sich zwischen Windows Server 2003 und Windows Server 2008 R2 erheblich geändert - und dies ist wahrscheinlich der Grund, warum sie nicht konsistent sind

Sie können PowerShell verwenden, um die Nicht-Systemkonten zu verschieben. Gehen Sie dann die Benutzer durch und benennen Sie sie in einen beliebigen Anzeigenamen um:

# Create new OU named RegularUsers
New-ADOrganizationalUnit -Name RegularUsers -Path "dc=domain,dc=com"

# Retrieve all users that are not critical system objects
$users = Get-ADUser -SearchBase "CN=Users,DC=domain,DC=com" -SearchScope OneLevel -Filter {-not(isCriticalSystemObject -like '*')}

# Go through each and move to the new OU
foreach($user in $users){
    Move-ADObject $user -TargetPath "OU=RegularUsers,DC=domain,DC=com"
}

# Retrieve all users in the new OU
$movedUsers = Get-ADUser -SearchBase "CN=Users,DC=domain,DC=com" -SearchScope OneLevel -Filter '*'

foreach($user in $movedUsers){
    # Test if Display Name and object Name is the same, if not - rename
    if($user.DisplayName -ne $user.Name)
    { 
        Rename-ADObject $user -NewName "$($user.DisplayName)" 
    }
}

Im ersten Schritt können Sie auch einfach alle Benutzerkonten in ADUC markieren und per Drag & Drop an einen anderen Ort ziehen.

Mathias R. Jessen
quelle
2

Der CN / DN eines Objekts ist nicht allzu relevant, da er nur intern von AD und in LDAP-Abfragen verwendet wird. Endbenutzer (und Administratoren) sehen es nur sehr selten. Es ändert sich tatsächlich von selbst, wenn Sie Objekte verschieben, da es den vollständigen LDAP-Pfad des Objekts enthält.

Wenn Sie es standardisieren möchten, können Sie dies ohne Nebenwirkungen tun. Das einzige, was Benutzer tatsächlich betrifft, ist ihr Anmeldename. Solange Sie dies nicht ändern , werden sie sich weiterhin wie gewohnt anmelden.

Zum Ändern können Sie entweder die ADUC-Konsole oder den PowerShell-Befehl Rename-ADObject verwenden .

Massimo
quelle
2
Ich würde sagen, CN / DN ist wichtig für die Integration in Anwendungen. AD-Integration wird normalerweise nicht gefunden, wo LDAP normalerweise ist. Es ist schön, wenn Ihr CN / DN einem Standard folgt. Es sieht auch hübscher aus :) Tolle Informationen darüber, wie man es tatsächlich ändert.
Steve Butler
1

Der Befehl dsmove sollte in der Lage sein, den kanonischen Namen für Sie zu ändern. Ich habe dies in Testumgebungen getan, aber niemals in Live-Umgebungen. Ich würde daher raten, mit Vorsicht vorzugehen.

Außerdem würde ich empfehlen, einen anderen Domänencontroller zu implementieren, um Kopfschmerzen zu vermeiden, falls Ihr einziger DC ausfällt.

DKNUCKLES
quelle
Wenn sich die Funktionsebene der Domäne und Gesamtstruktur auf Server 2008 R2 befindet, kann die alte Server 2003-Box als sekundärer Domänencontroller fungieren oder müssen wir das Betriebssystem dieses Computers aktualisieren?
böse Löffel
2
Sie können die Funktionsstufe "Domäne / Gesamtstruktur" nicht auf Version X erhöhen, es sei denn, alle Domänencontroller in der Domäne / Gesamtstruktur verfügen über mindestens diese Betriebssystemversion.
Massimo
@evilspoons ja, das kannst du, aber wie massimo sagt, muss es auf Domain-Ebene 2003 sein, um das zu tun.
Steve Butler
4
@SteveButler Da DFL / FFL 2008R2 nicht weiter als Level 2008 zurückgesetzt werden kann, ist "Ja" hier definitiv nicht die Antwort
Mathias R. Jessen
Okay, meine Optionen sind also, die Domain auf 2003-Ebene neu zu erstellen (wird nicht passieren) oder die 2003-Box auf 2008 R2 zu aktualisieren (wahrscheinlich auch nicht, mein Chef würde das Geld eher für einen neuen Computer ausgeben als mit einem zu spielen altes). Ich werde extra sicherstellen, dass unsere Backups gut sind, nur für den Fall, dass etwas stirbt ...
böse Löffel