Jump to content

Import vieler Exchange Kontakte


wise
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

ich möchte in einen Exchange Server 2010 zahlreiche Email Kontakte einbringen.

Wie kann ich z.B. über die Management Shell eine CSV Datei abarbeiten und daraus die AD-Objekte nebst Exchange Kontakte anlegen?

Falls es möglich wäre, diese über die CSV Datei auch noch einer oder mehrerer Verteilergruppen zu zuweisen (diese kann ich natürlich zuvor selbst per Hand anlegen), wäre das super.

 

Ich würde mich sehr über eine Hilfe freuen - sonst muss ich die alle per Hand anlegen :(

 

LG

Wise

Link zu diesem Kommentar

Ich hab mit der Powershell Erfahrung nur bei wirklich einfachen Befehlen; Also eher nur rudimentär.

Ich weiß auch, dass man Verkettungen herstellen kann und habe (durch Hilfen aus verschiedenen Beiträgen) zum Beispiel folgende zwei Ansätze für mein Problem gefunden:

 

(Import-CSV 'c:\datei.csv' -Delimiter ";") | %{ 
	New-MailContact -Name $_.Name -ExternalEmailaddress $_.Email 
}

Quelle: https://www.administrator.de/forum/exchange-2013-kontakte-csv-importieren-326974.html

 

bzw.

Import-Csv C:\datei.csv|%{New-MailContact -Name $_.Name -DisplayName $_.Name -ExternalEmailAddress $_.ExternalEmailAddress -FirstName $_.FirstName -LastName $_.LastName}

Quelle: https://support.office.com/de-de/article/massenimport-von-externen-kontakten-in-exchange-online-bed936bc-0969-4a6d-a7a5-66305c14e958#step1

 

Ich möchte so wenig wie möglich Verwaltungsaufwand haben, weshalb mir die Mailadresse einfach als Anzeigename genügt. Meine Liste sieht nun also wie folgt aus:

Email,Gruppe1,Gruppe2
Mueller@mail.de,Verteiler1,
Maier@mail.de,,Verteiler2
Schulze@mail.de,Verteiler1,Verteiler2

Meine Tabelle hat also für jede mögliche Verteilergruppe, in welcher die Kontakte eingetragen werden sollen, eine eigene Spalte.

Ich weiß nicht, wie es sinnvoll anzugeben wäre: Eine Spalte und "wie auch immer getrennt" die Verteilergruppen - das wäre kein Problem, die Liste dahingehend umzubauen - oder quasi diese Felder einfach hintereinander irgendwo anzugeben und bei Bedarf ist das Feld halt leer und daher findet keine Eintragung statt...

 

Ich bräuchte also noch einen Parameter "Mitglied in Gruppe" für den New-MailContact Befehl, den ich dann entsprechend mit den Spalten fülle.

Ich denke also, es müsste irgendwas sein wie:

Import-Csv C:\datei.csv|%{New-MailContact -Name $_.Email -DisplayName $_.Email -OrganizationalUnit OU=ExterneKontakte,DC=domain,DC=de -ExternalEmailaddress $_.Email -Group $_.Gruppe1,$_.Gruppe2}

Mein erstes Problem ist hier die Angabe mit der OU:

Die Argumenttransformation für den Parameter "OrganizationalUnit" kann nicht verarbeitet werden. Der Wert "System.Collections.ArrayList" vom Typ "Sys
tem.Collections.ArrayList" kann nicht in den Typ "Microsoft.Exchange.Configuration.Tasks.OrganizationalUnitIdParameter" konvertiert werden.
    + CategoryInfo          : InvalidData: (:) [New-MailContact], ParameterBindin...mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,New-MailContact

 

Mein zweites Problem ist die Angabe der Gruppen:

Wie es mir nach deinem Link scheint, gibt es diesen Schalter so nicht.

Demzufolge müsste ich das wohl wie hier beschrieben verketten:

Add-DistributionGroupMember -Identity "Staff" -Member "JohnEvans@contoso.com"

Aber da weiß ich nun nicht, wie ich das in den obigen Befehl einbaue. Evtl. würde folgendes funktionieren?

Import-Csv C:\datei.csv|%{New-MailContact -Name $_.Email -DisplayName $_.Email -OrganizationalUnit OU=ExterneKontakte,DC=domain,DC=de -ExternalEmailaddress $_.Email; Add-DistributionGroupMember -Identity $_.Gruppe1 -Member $_.Email; Add-DistributionGroupMember -Identity $_.Gruppe2 -Member $_.Email}

Aber DIESE Art von Verkettung sieht irgendwie falsch aus :(

 

Danke erstmal für deine Hilfe. Kannst du mir hierbei noch auf die Sprünge helfen?

 

bearbeitet von wise
Fehler bei den Befehlen mit dem Parameter -OrganizationalUnit (Reihenfolge der Werte geändert) und Fehler bei zweitem Problem (Gruppen Namen standen noch hinter dem new-mailcontact Befehl)
Link zu diesem Kommentar

Mein erstes Problem hab ich grad selbst behoben: Da fehlten einfach nur die Anführungszeichen.

 

Beim zweiten Problem hab ich immerhin einen Workaround: Es darf keine leere Spalte geben, da alle nachfolgenden Spalten auf Grund des dann folgenden Fehlers nicht mehr bearebitet werden, weshalb leider mein bisheriger Ansatz so nicht funktioniert. Ich muss die Tabelle also dahingehend umbauen, dass ich für jede Gruppe eine Spalte an den Kontakt anhänge.

 

Damit kann ich leben, aber es macht die Liste unübersichtlicher.

 

Ich vermute ich müsste vorher immer eine Prüfung einbauen:

Import-Csv C:\datei.csv|%{New-MailContact -Name $_.Email -DisplayName $_.Email -OrganizationalUnit OU=ExterneKontakte,DC=domain,DC=de -ExternalEmailaddress $_.Email; WENN(%_.Gruppe1 gesetzt, dann ´Add-DistributionGroupMember -Identity $_.Gruppe1 -Member $_.Email´); WENN(%_.Gruppe1 gesetzt, dann ´Add-DistributionGroupMember -Identity $_.Gruppe2 -Member $_.Email´)}

Aber da weiß ich nicht, wie ich so Prüfungen richtig einbaue. Außerdem denke ich gibt es vielleicht schönere Lösungen :)

bearbeitet von wise
Lösung zu zweitem Problem weiter bearbeitet
Link zu diesem Kommentar

Evtl. ist das zweite ein Timing Problem.

Versuche mal folgendes:

Import-Csv C:\datei.csv|%{New-MailContact -Name $_.Email -DisplayName $_.Email -OrganizationalUnit "OU=ExterneKontakte,DC=domain,DC=de" -ExternalEmailaddress $_.Email ;start-sleep 5; Add-DistributionGroupMember -Identity $_.Gruppe1 -Member $_.Email; Add-DistributionGroupMember -Identity $_.Gruppe2 -Member $_.Email}

 

Link zu diesem Kommentar

Danke. Unsere Beiträge haben sich ein bisschen überschnitten :)

 

Wie oben geschrieben liegt mein Problem darin, dass nicht jeder Kontakt in jeder Gruppe sein soll. Verbunden mit dem Aufbau meiner Liste kommts dabei zu diesem Problem.

Ich denke ich werde die Liste entsprechend anpassen. Fürs Filtern war mein Aufbau zwar einfacher, aber man kann sich umgewöhnen.

 

Solltest du trotzdem noch eine schöne Lösung für meine bisherige Liste haben, würde mich das aber trotzdem noch interessieren.

 

Vielen Dank jedenfalls für deine Hilfe.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...