RDNCHANGE.VBS

VBScript und 64Bit !
Viele 32bit COM-Objekte lassen sich auf einem 64bit System nur instanziieren, wenn die 32bit Version von CSCRIPT/WSCRIPT genutzt wird, welcher unter C:\Windows\SysWOW64\cscript.exe liegt.

Vielleicht ist ihnen auch schon aufgefallen, dass das Active Directory sehr viele Felder für "Namen" und Bezeichnungen kennt. Einige davon sind Ihnen sicher schon aufgefallen. Die meisten Anwender können ihren Anmeldenamen, wie er schon lange in Windows NT 4.0 Zeiten genutzt wurde. für Administratoren ist die Beschreibung wichtig, aber auch der vollständige Name. Seit dem Active Directory gibt es dafür aber die Felder Vorname, Nachname und Anzeigename und einige mehr. (Siehe weiter unten). Diese Felder werden an den verschiedensten Stellen verwendet, z.B. bei der Vergabe von Rechten auf öffentliche Ordner oder bei der Vergabe von Berechtigungen im Dateisystem und Freigaben.

Aber auch bei der Suche im Active Directory wird der RDN mit angezeigt.

Wenn Sie im Active Directory oder auf auf Verzeichnissen, Freigaben und Dateien Berechtigungen vergeben wollen, dann sehen Sie leider gar nichts davon, sondern in dieser Liste steht der Objektname, bzw. die Kurzform des "Relative Distinguished Name" oder auch RDN.

Machen wir es Kurz. Ein Programm muss her, dass aus den teilweise ausgefüllten Feldern des angezeigten Namens und oder Vornamen/Nachnamen die anderen Felder ordentlich befüllt. Durch eine Migration von NT4 wird in der Regel der Anzeigename mit übernommen oder sogar der gefüllte Vorname und Nachname entsprechend umbaut. Auch der ADC hat die unangenehme Eigenschaft, den RDN bei der Replikation durch den Displaynamen aus Exchange 5.5 zu ersetzen.

Das Skript

Das Script wurde als Visual Basic Skript nach und nach immer weiter entwickelt und ist nicht als fertig einsetzbares Werkzeug, sondern als Vorlage für eigene Anpassungen gedacht. RDNCHANCE macht im wesentlichen eine Auswertung von Vorname, Nachname und Displayname um basierend darauf die "Richtigen" Werte zu ermitteln.

  • Sind Vorname und Nachname gefüllt, dann werden diese Werte als "richtig" angenommen und daraus der Displayname erstellt
  • Sind die Felder nicht alle gefüllt, dann wird versucht, aus dem Displayname die Werte zu ermitteln.
  • Die Daten werden geschrieben
  • Das Objekt wird umbenannt.

Die beiden Schreibzugriff können Sie mit einer Abfrage erst anzeigen lassen und mit Ja/Nein bestätigen. Entfernen im letzten drittel die vier Kommentarzeichen am Anfang.

Zum Einsatz

  • Aufruf mit CSCRIPT rdnchance.vbs ou=OUNAME,dc=domain,dc=tld
    Wenn Sie nicht CSCRIPT nutzen, dann sind alle Diagnoseausgaben Windowsboxen zum bestätigen. Viel Spaß beim Klicken.
  • Sie müssen die OU RFC-konform angeben.
  • Sie benötigen zum Einsatz entsprechende Berechtigungen auf der OU.
  • RDNCHANCE arbeitet nicht rekursiv.
  • RDNCHANCE versucht zuerst zu vergleichen ob die generierten Werte nicht schon mit den aktuellen werten übereinstimmen. Wenn ja, dann wird nichts gemacht um den Bedarf der Replikation zu minimieren.
  • RDNCHANCE hat KEINE Fehlerbehandlung. Leider habe ich bislang es nicht hinbekommen, dass Obj.MoveHere ohne eine Fehlermeldung funktioniert. Bislang ist RDNCHANCE da immer mit einem Fehler ausgestiegen, obwohl alles funktioniert. Daher ist ein "ON ERROR RESUME NEXT" am Anfang drin. Feedback willkommen.
  • Kontrollieren Sie hinterher die Ergebnisse. Es gibt immer Sonderfalle, die nicht abgedeckt sind.

rdnchange.zip

rdnchange.vbs.txt

In meinen TestUmgebungen und bei Kunden hat dieses Script bislang problemlos funktioniert. Trotzdem kann es sein, dass das Script unerwartet abbricht. Dies liegt oft an Sonderzeichen oder Inhalten im AD, die ich noch nicht abgefangen habe. Bitte setzen Sie dann das Debugging auf 6 und senden Sie mir die letzten Zeilen der Protokolldatei und die Zeilennummer des Fehlers des Scripting Hosts. -> Kontakt

AD Template anpassen

Wenn Sie einen Benutzer über die MMC anlegen, wird anhand der Eingabe des Vornamens und Nachnamens der "DN" generiert. Auch dieses Verhalten können Sie anpassen.

Mit ADSI-Edit ist dazu das entsprechende Template zu ändern.

  • 250455 How to Change Display Names of Active Directory Users
    So können Sie auch in der MMC das Standardverhalten anpassen

Risiken

Viele Felder dürfen nicht doppelt sein. Daher ändert RDNChange nur die ungefährlichen Felder und ändert z.B.: nicht den Exchange Alias. Vorsicht also bei eigenen Erweiterungen.

Weitere Links

  • AddFirma
  • AD Felder
  • Softerra LDAP
  • Changing the display name of active directory Users
    http://blogs.msdn.com/dgoldman/archive/2008/06/19/changing-the-display-name-of-active-directory-Users.aspx
  • 250455 How to Change Display Names of Active Directory Users
    So können Sie auch in der MMC das Standardverhalten anpassen
  • Q269843: XADM: ADC Overwrites Display Name with Exchange Server 5.5 Display Name
    Damit der ADC nicht den CN der Active Directory Objekte anpasst. CA-Properties: msExchServer1Flags=2
  • 277717 How to Change the Display Names of Active Directory Users with Active Directory Services Interface Script
    Musterscript, wie sie bereits umbenannte Benutzer wieder zurück benennen können.
  • 277717 How to Change the Display Names of Active Directory Users with Active Directory Services Interface Script
  • 250455 XADM: How to Change Display Names of Active Directory Users