hackman
Goto Top

Name, Vorname in globaler Adressliste (Windows 2008R2, Exchange 2010)

Hallo liebe Gemeinde,

dieses Thema würde schon öfter behandelt - ich weiß. Leider bleiben bei mir noch Fragen offen, auf die ich nirgends eine Antwort finde.

1. Mit Adsiedit kann ich den DisplayName für neu erstellte Benutzer ändern. In allen Beiträgen die ich gefunden habe, wird dem Komma ein Backslash vorangestellt (Name\, Vorname). Dies dient wohl dazu, die AD Suche, die wohl mit dem Komma Probleme hat, nicht zu verwirren. Habe ich das richtig verstanden?

2. Führe ich diese Änderung durch, wird der Backslash allerdings überall mit angezeigt. Die Mitarbeiter hier im Haus könnten wohl damit leben... Allerdings wird das dann so auch als Absender von e-mails angezeigt und das geht natürlich gar nicht. Hat dafür jemand eine Erklärung/Lösung?

Ein Script (Dank an Nils Kaczenski) welches ich gefunden habe, verstehe ich so:

For each usr in objOU

if instr(usr.SamAccountName, "$") = 0 then
strName = usr.get("name")
schreibLog "Benutzer: " & usr.SamAccountName
vLast = usr.get("Sn")
vFirst = usr.get("GivenName")
vFullname = vLast + ", " + vFirst ' für den displayName
vCN = vLast + "\, " + vFirst ' für name (= cn): Komma maskieren

' displayName setzen: das geht mit "Put"
usr.put "displayName", vFullName
usr.setinfo

' name/cn setzen: erfordert Umbenennen durch die "MoveHere"-Methode!
strRenameCN = "LDAP://cn=" & strName & "," & strOU & "," & strDomain
set objUsrRename = objOU.MoveHere(strRenameCN, "cn=" & vCN)
... (Fehlerbehandlung)
Next

Der DisplayName wird ohne den Backslash in der Form "Name, Vorname" gesetzt. Damit gibt es dann wohl auch keine Probleme mit dem Absender einer Mail.
Welches ist dann aber der Name, der mit dem Backslash gesetzt wird?

Hoffentlich kann mir das jemand erklären und Lich in die Angelegenheit bringen.

Viele Grüße
Marc

Content-Key: 208022

Url: https://administrator.de/contentid/208022

Printed on: April 24, 2024 at 02:04 o'clock

Member: colinardo
colinardo Jun 15, 2013 updated at 11:12:08 (UTC)
Goto Top
Hallo Marc,
in dem Script wird für den CN = "Common Name"(The name that represents an object. Used to perform searches.) das Komma maskiert weil in einem LDAP-String das Komma als Trennung zwischen den jeweiligen Einheiten verwendet wird siehe Bsp.:
CN=James Smith, CN=Users, DC=server, DC=local
siehe auch hier
Grüße Uwe
Member: hackman
hackman Jun 18, 2013 at 11:03:07 (UTC)
Goto Top
Hallo Uwe,
vielen Dank für die Antwort.
Das mit der Maskierung war mir klar. Nur heißt "Maskierung" für mich, dass das Komma ausgeblendet wird. Blöder Weise ist aber der Backslash vor dem Komma immer sichtbar. Eben auch beim Absendername in der email, was beim Empfänger dann sehr komisch aussieht. Auch in der GAL steht dann der Name in der Form "Nachname\, Vorname" was ebenfalls unschön ist.

Im Script wird ja mit

usr.put "displayName", vFullName
usr.setinfo

der DisplayName ohne den Backslash und hiermit

strRenameCN = "LDAP://cn=" & strName & "," & strOU & "," & strDomain
set objUsrRename = objOU.MoveHere(strRenameCN, "cn=" & vCN)

der CN mit dem Backslash gesetzt

Wo jetzt was in den Eigenschaften des Benutzers bei 'active directory, Benutzer & Computer' auftaucht, erschließt sich mir noch nicht.

Kannst Du da nochmal ansetzen?

Ich möchte einfach nur in der GAL 'Nachname, Vorname' angezeigt bekommen und so soll es natürlich auch im Absendename der mail stehen.

Vielen Dank und Grüße
Marc
Member: colinardo
colinardo Jun 18, 2013 updated at 12:37:18 (UTC)
Goto Top
Hallo Marc,
denke du musst die einzelnen Attribute wie "DisplayName" nach dem umbenennen des Accounts setzen da sonst der Backslash mit Move-Aktion mit in den DisplayName übernommen wird.
Siehe ein Beispiel-Script hier:
http://mctexpert.blogspot.de/2009/09/renaming-user-accounts-in-active.h ...

Grüße Uwe
Member: colinardo
colinardo Jun 18, 2013 at 12:24:48 (UTC)
Goto Top
Das Script sollte funktionieren:

strOU = "OU=DeineOU,DC=deinedomain,DC=local" ' Change this line to reflect your environment.  
Set objOU = GetObject("LDAP://" & strOU)  

For each usr in objOU

	if instr(usr.SamAccountName, "$") = 0 then  
		strName = usr.get("name")  
		vLast = usr.get("Sn")  
		vFirst = usr.get("GivenName")  
		vFullname = vLast + ", " + vFirst ' für den displayName  
		vCN = vLast + "\, " + vFirst ' für name (= cn): Komma maskieren  
		
		' name/cn setzen: erfordert Umbenennen durch die "MoveHere"-Methode!  
		set objUsrRename = objOU.MoveHere("LDAP://cn=" & strName & "," & strOU, "cn=" & vCN)  
		set objUser = GetObject("LDAP://cn=" & vCN & "," & strOU)  
	
		' displayName setzen: das geht mit "Put"  
		objUser.put "displayName", vFullName  
		objUser.setinfo
	End If

Next

Grüße Uwe