Jump to content

Massenimport von Kontakte in Exchange 2010


Direkt zur Lösung Gelöst von massaraksch,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hi zusammen,

 

ich habe ein fertiges Excelfile + Skript für den Massenimport (+5000 Kontakte) für unser AD/Exchange, jedoch bekomme ich immer folgenden Fehler:

 

A positional parameter cannot be found that accepts argument "$null".

 

Import-Csv “d:\xyz\xyz.csv” | ForEach {New-MailContact -Firstname $_.FirstName -LastName $_.LastName -DisplayName $_.DisplayName -WindowsEmailAddress $_.WindowsEmailAddress -Company $_.Company -OrganizationalUnit “OU”}

So sieht mein Excelfile aus:
image.png.864c26426d718ff849cde49aff125025.png

 

Die OU ist der DN aus dem Attribute Editor kopiert.

Alle Felder sind ausgefüllt.
Kann mir jemand vielleicht helfen, da ich den Fehler einfach nicht finde.

 

Viele Grüße

 

Link zu diesem Kommentar

Sind externe Kontake von unserer neuen Mutterfirma.

Also der Vorgang als solcher ist abgesichert und erfordert.

 

Die Quelldatei, die ich bekommen habe, hat folgende Felder:

Fistname, Lastname, Displayname, ExternalEmailAddress, Company

 

Mein Skript sieht jetzt so aus:

Import-Csv “xyz.txt” | ForEach {New-MailContact -DisplayName $_.Name -Firstname $_.FirstName -LastName $_.LastName -ExternalEmailAddress $_.ExternalEmailAddress -Company $_.Company -OrganizationalUnit “DN der OU”}

 

Die Fehlermeldung des Exchange 2010 SP3:

Cannot bind argument to parameter "ExternalEmailAddress" because it is null

 

Link zu diesem Kommentar

Hmm verstehe ich nicht ganz.

Meine CSV hat mittlerweile nur 3 Spalten (nicht ausblendet, alles überflüssige gelöscht):

Displayname WindowsEmailAddress Company

 

Mein Script:

Import-Csv “xyz.txt” | ForEach {New-MailContact -DisplayName $_.Name -WindowsEmailAddress $_.ExternalEmailAddress -OrganizationalUnit “OU”}

Die Fehlermeldung:


A positional parameter cannot be found that accepts argument '$null'.
    + CategoryInfo          : InvalidArgument: (:) [New-MailContact], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,New-MailContact

Der hat einfach ein Problem mit der Mailadresse.
Aber ein manuelles Befehl, also nicht aus der CSV heraus, geht.
New-MailContact -Name "xyz" -externalEmailAddress xyz@xyz.com -OrganizationalUnit “OU” wird erfolgreich erstellt.

Link zu diesem Kommentar
  • Beste Lösung

Hi,

 

bei dir geht es laufend durcheinander, was den Aufbau deiner CSV und des Befehls betrifft. Nur die Bezeichnungen (Felder) der CSV können im Befehl verwendet werden und keine anderen... Also bring Ordnung rein.

 

Beispiel:

Du kannst nicht $_.ExternalEmailAddress verwenden, wenn in der CSV das Feld "WindowsEmailAddress" heißt.

 

Falls deine CSV wie zuletzt von dir beschrieben aussieht... also folgende kommagetrennte Angaben:

 

Displayname,WindowsEmailAddress,Company

 

Dann kann dein Befehl auch nur so aussehen:

 

Import-Csv .\test.csv | % { New-MailContact -Name $_.DisplayName -ExternalEmailAddress $_.WindowsEmailAddress -OrganizationalUnit "domain.local/OU/..." -whatif }

 

Hinweise:

Die Parameter -Name sowie -ExternalEmailAddress sind erforderlich (mandatory), alle anderen optional.

Name wird automatisch auch Displayname, wenn Displayname nicht extra angegeben wird.

Der Parameter "-whatif" dient zum Testen, damit man nicht gleich live Tausende evtl. falscher Objekte erzeugt). Nach Test/Prüfung dann einfach weglassen.

Ach ja, -Company kann man mit New-MailContact nicht setzen, sondern nur mit Set-Contact.

 

Nachtrag: Aus alter Faulheit habe ich % für ForEach genommen.

bearbeitet von massaraksch
Link zu diesem Kommentar

Vielen Dank für die Hilfe und Sorry für die Verwirrung.

Letzlich hab ich es chaotisch beschrieben, aber richtig gemacht und auch hingekriegt. Mein Problem war die kommagetrennte CSV, die falsch erstellt hatte.

Die CSv sah schon richtig aus.

Allerdings habe ich den Import jetzt ohne Firstname Lastname gemacht.

Hat jemand eventuell einen Tipp, wie ich nachträglich aus der CSV in die bestehenden Mail-Kontakte die Vor- und Nachnamen importieren kann?
Get-mailcontact / Set-mailcontact?

Link zu diesem Kommentar

Hi,

 

Set-MailContact kann leider kein Firstname/Lastname/Company setzen.

Hint:

man set-mailcontact -det

zeigt dir den möglichen Parametersatz an.

 

Vor/Nachname usw. geht nur mit set-contact, z.B. so:

Import-Csv .\test.csv | % { Set-Contact $_.WindowsEmailAddress -FirstName $_.FirstName -LastName $_.LastName -WhatIf }

PS: Ich gehe von der CSV-Beschreibung in deinem allerersten Posting aus...

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...