AddFirma

Alle Skripte sind Muster ohne jede Gewährleistung oder Funktionsgarantie. für Schäden bin ich nicht verantwortlich. Achten Sie auf Zeilenumbrüche bei der Übernahme.

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.

Der Displayname aus dem Active Directory wird von Exchange sowohl als "FullName" für den Versand einer Mail verwendet als auch in der GAL angezeigt. Gerade große Firmen wünschen sich, dass der Firmenname oder die Abteilung hinter dem Namen angehängt wird. Genau das macht dieses Script. Es ändert den Displaynamen derart, dass die Firma in Klammern am Ende angefügt wird. Im Adressbuch sieht das dann etwa so aus:

Natürlich könnten Sie nun bei der Neuanlage eines Anwenders gleich den Displaynamen korrekt eintragen. Aber sie können Natürlich andererseits auch einfach die Firma im entsprechenden Feld des Benutzers pflegen und dann das Script AddFirma laufen lassen. für die reibungslose Funktion ist Natürlich erforderlich, dass die Firma auch gepflegt ist.

Wenn Sie sehr viele Benutzer haben, und auf einen Streich die Firma ergänzen wollen, dann können Sie dies Natürlich auch per Skript tun. Pflegen Sie dazu in AddFirma.vbs einfach in die Konstante "strFirma" am Anfang ihren gewünschten Firmenname. Dann wird das Feld "Company" und die Firma im Displayname auf diesen Wert gesetzt. Natürlich können Sie die Firma auch mit ADModify.NET oder ADModify pflegen.

Aufruf und Durchlauf

Das  Script ist sehr einfach gestaltet und benötigt keinerlei Konfiguration. Rufen Sie das Script einfach mit der OU als Parameter auf, dessen Benutzer geändert werden sollen. Wie hier in meinem Beispiel zu sehen gibt das Script alle Änderungen auf dem Bildschirm aus.

Eine Ausgabe im Eventlog oder einer Protokolldatei habe ich nicht vorgesehen.

addfirma.1.0.vbs.txt
Nach dem Download bitte die Endung TXT entfernen

Der Aufruf ist denkbar einfach. Geben Sie einfach die OU mit den fraglichen Postfächern ein.

cscript.exe addfirma.1.0.vbs ou=test,dc=msxfaq,dc=local

Einschränkungen

Das Script ist primär als Muster gedacht. Sie können sehr gut sehen, wie einfach mit VBScript massenhafte Änderungen an Benutzern möglich sind. Das Script hat Natürlich einige Einschränkungen.

  • Nur eine OU
    Das Script
  • Nur "User", keine Kontakte, Verteiler, Ordner
    Das Script bearbeitet nur Objekte der Klasse "User". Entsprechend ignoriert es Kontakte, Verteiler, öffentliche Ordner.
  • Kaum "Intelligenz
    Das Script tut, was es tun soll. Aber Natürlich können dabei auch "Fehler "passieren, z.B. wenn der Displayname nicht besonders "schlau" gefüllt ist. Das Script geht z.B.: davon aus, dass eine "(" den Anfang und ein ")" das Ende einer bestehenden Firmenbezeichnung kennzeichnet und ersetzt diese. Das "kann" in einige Umfeldern Natürlich falsch sein. Es ist also keine allzu intelligente Behandlung hier implementiert.
  • Keine Fehlerbehandlung, kein Monitoring
    Wenn ein Fehler auftritt, dann bricht das Script einfach ab. Dabei geht Natürlich nichts kaputt, außer dass es eben die nachfolgenden Objekte nicht mehr bearbeitet. Beseitigen Sie den Fehler und rufen Sie es einfach noch einmal auf.
  • Keine Policy
    Das Script kann Natürlich nur was tun, wenn es auch "gestartet" wird. Wenn Sie also neue Benutzer anlegen, dann bekommen diese nicht automatisch die Firma angehängt. Sie müssen das Script dazu schon selbst aufrufen. Es ist also keine "Richtlinie" für MMC.

Bitte sehen Sie das Script als Musteranwendung an, die Sie selbst Ausbauen können.

PowerShell

Viele Dinge, die ein VBScript gleich mehrere Zeilen benötigen, sind in Exchange 2007 mit der PowerShell einfach zu lösen. Hier ein Beispiel um den Displaynamen zu ändern.

get-mailbox | get-User | foreach { 
   $DisplayName = $_.LastName + ", " + $_.FirstName ; 
   $Displayname ; set-User -Identity $_.Identity -DisplayName $DisplayName }

Das Skript hat Natürlich nicht die gleiche Funktion wie das VBScript aber es zeigt, wie effektiv sie mit PowerShell müssen Änderungen durchführen können.

Weitere Links

  • RDNCHANGE.VBS
  • AD Benutzer
  • Tools ADModify
  • ADModify.NET
  • DSAdd etc
  • 244164 XCON: How to Disable Sending Friendly Names Outside the Exchange 2000 Organization
  • 250455 How to Change Display Names of Active Directory Users
    So können Sie auch in der MMC das Standardverhalten anpassen
  • 258696 XADM: How to Modify Global Settings in Exchange System Manager
  • 269843: 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.
  • 300427 How to Change Active Directory Display Names