martinl
Goto Top

Exchange 2013 - LDAP Feld Namen beim Massenimport von Kontakten

Hallo liebe Admins ,

ich habe eine Frage bzgl. des Massenimports von Kontakten in Exchange. Momentan haben wir unsere Kontakte in einem öffentlichem Kontakteordner geführt. Nun wurde unsere Telefonanlage komplett umgestellt und der Wunsch war, das der Name der Anrufenden auf dem Telefon angezeigt wird. Der externe Dienstleister sagte ich müsse Ihnen nur LDAP Zugriff geben, dann sei dies kein Problem. Also wollte ich nun die ganzen Adressen in eine GAL "schieben".

Nun habe ich alle Kontakte schonmal exportiert als CSV und die Chance auch gleich mal genutzt etwas aufzuräumen bei den Kontakten. Nun habe ich folgendes Problem.

Die Spaltennamen in der CSV sind "deutsch". Die LDAP Namen aus dem AD aber Englisch. ich hatte sie für mich trotzdem schonmal zugeordnet von Spaltenname CSV zu LDAP Felder:

Anrede -> ?
Vorname -> givenName
Nachname -> sn
Firma -> company
Abteilung ->department
Position -> title
Straße -> streetAddress
Ort -> L
Postleitzahl -> postalcode
Land -> countryCode
Telefonnummer -> telephoneNumber
weitere telefonnummer ->otherTelephone
Faxnummer -> facsimileTelephoneNumber
Handy -> mobile
Telefon Privat -> homePhone
E-Mail-Adresse -> mail
E-Mail angezeigter name -> ??
E-Mail 2 -> ??
E-Mail angezeigter name2 -> ??
Initialen - wird eigentlich nicht benötigt
Notizen -> info
Website -> wWWHomePage


Nun habe ich mir mal die Parameter angeschaut bei TechNet für das CMDlet "New-mailContact" : NEW-MailContact Parameter. Dort gibt's diese givenName usw. alles nicht.

Die ganzen Beispiele für Massenimport zeigen leider auch immer nur die üblichen verdächtigen wie Name, , E-Mailadresse.

Wie bekomme ich die oberen Spalten importiert in Exchange ? Die Spalten Anrede,E-Mail angezeigter Name,E-Mail und E-Mail angezeigter name 2 finde ich garnicht bei den ldap Attributen.

Ich danke euch jetzt schonmal.

Content-Key: 356359

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

Printed on: July 18, 2024 at 16:07 o'clock

Member: BassFishFox
BassFishFox Nov 28, 2017 updated at 13:27:22 (UTC)
Goto Top
Hallo,

Schau mal in diese Liste und gleiche das mit dem ab was Du hast.
https://www.faq-o-matic.net/2002/09/21/active-directory-ldap-feldnamen/

BFF
Member: Dani
Dani Nov 28, 2017 at 13:32:53 (UTC)
Goto Top
Moin,
Anrede -> ?
dafür gibt es kein Feld. Nimm dafür ein extensionAttribute her.

E-Mail angezeigter name -> ??
Sicherlich displayName...

E-Mail 2 -> ??
E-Mail angezeigter name2 -> ??
Ich vermute dafür ist ein weiterer, separater Kontakt notwendig.

Gruß,
Dani
Member: MartinL
MartinL Nov 28, 2017 at 13:45:02 (UTC)
Goto Top
Danke dir erstmal, weißt du ob diese Feldnamen auch für Server 2012R2 gelten ?
Member: Dani
Dani Nov 28, 2017 at 13:51:53 (UTC)
Goto Top
Hallo,
Danke dir erstmal, weißt du ob diese Feldnamen auch für Server 2012R2 gelten ?
ich hab auf einem Windows Server 2012R2 nachgeschaut. face-wink Grundsätzlich setzt das Ganze auf ein Schema auf. Dieses wurde in den letzten Versionen erweitert. Die Basisfelder heißen immer gleich.


Gruß,
Dani
Mitglied: 134464
134464 Nov 28, 2017 updated at 13:54:16 (UTC)
Goto Top
Member: BassFishFox
BassFishFox Nov 28, 2017 at 13:53:57 (UTC)
Goto Top
Hallo,

Warum nicht? Gelten sogar fuer OpenLDAP. LDAP ist halt LDAP. face-smile

BFF
Member: MartinL
MartinL Dec 07, 2017 at 17:28:11 (UTC)
Goto Top
Also ich bin heut mal zu gekommen ein wenig rumzuprobieren und habe mal testweise nur 1 Kontakt in eine CSV gepackt. Mit folgendem Befehl klappt soweit alles super:
Import-Csv Contacts.csv | ForEach-Object { New-MailContact -Name $_."Name" -ExternalEmailAddress $_."Email-Address" -FirstName $_."FirstName"  -OrganizationalUnit "OU=Externe Kontakte,DC=meineFirma,DC=intern" -Alias $_."Name" }  


Sobald ich aber Straße(streetAdress) hinzufüge mit diesem Code:

Import-Csv Contacts.csv | ForEach-Object { New-MailContact -Name $_."Name" -ExternalEmailAddress $_."Email-Address" -FirstName $_."FirstName" -streetAddress $_."streetAddress" -OrganizationalUnit "OU=Externe Kontakte,DC=meineFirma,DC=intern" -Alias $_."Name" }  

Meckert die Exchange Management Shell mit folgendem Fehler:


[PS] C:\>.\contacts.ps1
Es wurde kein Parameter gefunden, der dem Parameternamen "streetAddress" entspricht.
+ CategoryInfo : InvalidArgument: (face-smile [New-MailContact], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,New-MailContact
+ PSComputerName : mailserver.meineFirma.intern

Was mache ich falsch ? Er scheint den LDAPNamen streetAdress nicht zu kennen.
Mitglied: 134464
134464 Dec 07, 2017 updated at 20:06:23 (UTC)
Goto Top
Also manchmal Frage ich mich ob die Leute heute überhaupt noch lesen??

Steht hier was von einem Parameter namens StreetAddress? NEIN!
https://technet.microsoft.com/de-de/library/bb124519(v=exchg.160).aspx
Also kannst du den nicht einfach angeben, das CMDLet kennt ihn nicht!

Um dieses Attribut zu ändern benutzt du
Set-User
Set-User <identity> -StreetAddress "ReadTheFuckingManualStreet 42"  
Member: MartinL
MartinL Dec 07, 2017 at 20:18:17 (UTC)
Goto Top
Entschuldige bitte face-smile ich habe bei TechNet schon gesehen das der Parameter nicht vorhanden ist, wusste jetzt aber nicht wie ich das Problem löse, deshalb meine Frage.

Okay dann werde ich mal versuchen das Set-User CMDLet mit dem New-MailContact zu verbinden, so das alles gleich in einem Rutsch durchgeführt wird.
Member: MartinL
MartinL Dec 08, 2017 at 14:29:07 (UTC)
Goto Top
Also, ich habe mal heute immermal wieder einige Testkontakte importiert, und soweit funktioniert der Code auch. Aber es gibt doch noch einige Fragen die für mich noch ungelöst sind. Aber erstmal zum CSV-Import:

import-csv c:\contacts.csv | forEach { $c = New-MailContact -Name $_."Name" -ExternalEmailAddress $_."Email-Address" -FirstName $_."FirstName" -LastName  $_."LastName" -OrganizationalUnit "OU=Externe Kontakte,DC=werft-malz,DC=intern" -Alias $_."Name"; set-contact  $c.distinguishedname -Phone $_.OfficePhone -Company $_.Company -department $_.department -Title $_.Title -streetAddress $_.streetAddress -city $_.city -Postalcode $_.Postalcode -CountryorRegion $_.CountryorRegion -othertelephone $_.otherTelephone -Fax $_.Fax -MobilePhone $_.MobilePhone -HomePhone $_.Homephone -Notes $_.Notes -Webpage $_.Webpage}  

Jetzt habe ich aber noch eine Frage. Vorher wurden unsere Kontakte wie gesagt im öffentlichen Ordner gepflegt, da war es egal ob es zu einer Firma mehrere Kontakte gab. Teilweise gibt es auch Einträge wo nur der Nachname vorhanden ist + Telefonnummer. ich habe mal folgendes Bild als Beispiel dargestellt wie Einträge teilweise im Outlook abgespeichert sind:


Der Displayname kann ja beliebig gewählt werden, dort sind doppelte Einträge egal. Aber wie macht ihr das mit den Common Names ? Wenn es wie auf dem Bild unter einer Firma mehrere Einträge gibt, oder es Max Müller mehrfach gibt z.B. ?

Ich danke euch schonmal.
contacts
Mitglied: 134464
134464 Dec 08, 2017 updated at 15:39:19 (UTC)
Goto Top
Einen eindeutigen Alias vergeben, der der vor der Domain in der Mailadresse steht ... Ein Mailcontact muss ja eine eindeutige Mail haben.
Member: MartinL
MartinL Dec 08, 2017 at 18:17:05 (UTC)
Goto Top
Hallo,

okay das wurde ja nicht immer gehen. Bsp:

Hans.Müller@xy.de
Hans.Müller@zz.de

So gäbe es zweimal Hans Müller wenn ich nur den Teil vor der Domain nehme. Aber zumindestens erstmal ein Ansatz für mich.

Und die Kontakte die garkeine Mailadresse haben müsste ich nochmal aus der csv filtern und mittels „New-ADObject -type contact“ einlesen...

aber eine Eindeutigkeit ist hier auch noch nicht ganz gegeben... hmmm...
Mitglied: 134464
134464 Dec 08, 2017 updated at 21:25:07 (UTC)
Goto Top
Dann generiere dir halt einen Zufallswert (Get-Random) den du jedem Kontakt Anhängst, oder eine Kombination aus mehreren Merkmalen. Wenn du sie nicht schon vorher manuell eindeutig machen willst.
Lösungen gibt es genügend dafür, such dir deine zu euch passende raus und fertig ist der Lack!!