Echange 2013 Shell - CSV Import von Kontakten
Moin Zusammen,
ich versuche nun schon gefühlte Stunden eine CSV Datei mit Kontaktadressen im Exchange 2013 zu importieren.
Ich habe es nun mit Kommaseparierten CSV-Dateien versucht, a la Anzeigename,Vorname,Nachname,Emailadresse oder mit Spaltenweisen CSV-Dateien.
Immer bekomme ich die selbe Fehlermeldung:
"Der Paramter "Name" kann nicht an das Ziel gebunden werden. Ausnahme beim Festlegen von "Name": "Die Eigenschaft ist zu lang. die maximale Länge beträgt 64, die Länge des bereitgestellten Wers ist 145(Variabel)."
"
[PS] D:\Import>Import-Csv testcontact.csv | ForEach { New-MailContact -Name "$_,Anzeigename" -DisplayName "$_.Anzeigenam
e" -Firstname "$_.Vorname" -LastName "$_.Nachname" -ExternalEmailAddress "$_.EMail" -OrganizationalUnit "Domäne.Local/
OU/Kontakte" -Alias "$_,Lastname" }
Wenn ich den Namen weg lasse und einfach manuell eintrage, wozu mich die PS dann auffordert sagte er mir halt das der Firstname zu lang sei.
Letztlich hab ich es wie hier: http://www.oxfordsbsguy.com/2015/05/06/exchange-powershell-how-to-bulk- ...
Aber eben immer die gleiche Fehlermeldung.
Jemand noch eine Idee wie ich das importiert bekomme?
Danke und Grüße
ich versuche nun schon gefühlte Stunden eine CSV Datei mit Kontaktadressen im Exchange 2013 zu importieren.
Ich habe es nun mit Kommaseparierten CSV-Dateien versucht, a la Anzeigename,Vorname,Nachname,Emailadresse oder mit Spaltenweisen CSV-Dateien.
Immer bekomme ich die selbe Fehlermeldung:
"Der Paramter "Name" kann nicht an das Ziel gebunden werden. Ausnahme beim Festlegen von "Name": "Die Eigenschaft ist zu lang. die maximale Länge beträgt 64, die Länge des bereitgestellten Wers ist 145(Variabel)."
"
[PS] D:\Import>Import-Csv testcontact.csv | ForEach { New-MailContact -Name "$_,Anzeigename" -DisplayName "$_.Anzeigenam
e" -Firstname "$_.Vorname" -LastName "$_.Nachname" -ExternalEmailAddress "$_.EMail" -OrganizationalUnit "Domäne.Local/
OU/Kontakte" -Alias "$_,Lastname" }
Wenn ich den Namen weg lasse und einfach manuell eintrage, wozu mich die PS dann auffordert sagte er mir halt das der Firstname zu lang sei.
Letztlich hab ich es wie hier: http://www.oxfordsbsguy.com/2015/05/06/exchange-powershell-how-to-bulk- ...
Aber eben immer die gleiche Fehlermeldung.
Jemand noch eine Idee wie ich das importiert bekomme?
Danke und Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 283174
Url: https://administrator.de/forum/echange-2013-shell-csv-import-von-kontakten-283174.html
Ausgedruckt am: 02.04.2025 um 02:04 Uhr
17 Kommentare
Neuester Kommentar

Moin,
Und woher hast du das hier ?
Wenn ein Name zu lang ist kann man diesen auf 64 Zeichen begrenzen
Gruß jodel32
"Der Paramter "Name" kann nicht an das Ziel gebunden werden. Ausnahme beim Festlegen von "Name": "Die Eigenschaft ist zu lang. die maximale Länge beträgt 64, die Länge des bereitgestellten Wers ist 145(Variabel)."
steht doch klar was die Ursache ist, dein Alias/Name des Kontakts ist zu lang.Und woher hast du das hier ?
-Alias "$_,Lastname"
Da ist erstens das Komma falsch, zweitens kann man innerhalb von Anführungszeichen keine Eigenschaften eines Objekts so abrufen sondern nur so "$($_.Lastname)" und drittens woher soll diese kommen ? Hast du in deiner CSV eine Spalte Lastname ? Du hast doch vorne die Spalte Nachname ??Wenn ein Name zu lang ist kann man diesen auf 64 Zeichen begrenzen
-Name $_.Nachname[0..63]

Also ich kann doch, wenn ich nicht irre einen Wert aus der CSV auch an mehreren Stellen verwenden oder?
Ja kannst du.Das hier geht problemlos:
Import-csv 'C:\kontakte.csv' | %{New-MailContact -Name $_.Anzeigename -DisplayName $_.Anzeigename -FirstName $_.Vorname -LastName $_.Nachname -ExternalEmailAddress $_.Email -OrganizationalUnit 'Domäne.Local/OU/Kontakte'}

Zitat von @Xaero1982:
Da bekomme ich: "Das Arguemtn kann nicht an den Parameter "Name" gebunden werden, da es sich um eine leere Zeichenfolge handelt."
Das ist natürlich käse ... ist nicht leer.
Das muss aber an deinen Daten liegen, wenn dort der Anzeigename leer ist kann das so natürlich mit meinem o.g. Schnippsel nicht laufen.Da bekomme ich: "Das Arguemtn kann nicht an den Parameter "Name" gebunden werden, da es sich um eine leere Zeichenfolge handelt."
Das ist natürlich käse ... ist nicht leer.
Poste doch mal bitte die ersten 5 Zeilen aus deiner CSV inkl Überschriften. Hier geht das ja problemlos...
Sind die Daten wirklich mit Komma getrennt und nicht mit Semikolon ?
Welches Format hat die CSV zufällig UTF-8 Zeichenkodierung?
Bitte nutze Codetags
<code> Quellcode </code>
.
Zur Info wenn man andere Delimiter als das Komma benutzt muss man diese bei Import-CSV mit dem Parameter -delimiter angeben, falls du das nicht schon getan hast.
Die Kodierung gibt man mit dem Parameter -Encoding UTF8 bei import-csv an.
Wurde die Shell schon mal neu gestartet oder die Kiste ? Am Code kann es definitiv nicht liegen, da muss entweder an der Kiste was nicht stimmen, die Shell hat sich weggehängt oder die Quelle hat einen weg. Ich erzähl hier ja nichts vom Pferd ..
ACHTUNG Dateien aus direkt gespeichert aus Excel haben manchmal Probleme in der Powershell, erstelle sie also mal manuell in Notepad, nur um das auszuschließen !
Die Kodierung gibt man mit dem Parameter -Encoding UTF8 bei import-csv an.
Wo les ist die Codierung aus?
Öffne das Teil mit Notepad und geh auf Speichern unter dann steht es unten in der Auswahlbox.Wurde die Shell schon mal neu gestartet oder die Kiste ? Am Code kann es definitiv nicht liegen, da muss entweder an der Kiste was nicht stimmen, die Shell hat sich weggehängt oder die Quelle hat einen weg. Ich erzähl hier ja nichts vom Pferd ..
ACHTUNG Dateien aus direkt gespeichert aus Excel haben manchmal Probleme in der Powershell, erstelle sie also mal manuell in Notepad, nur um das auszuschließen !

Mit Semikolon muss zwingend der Delimiter angegeben werden !! Sonst bekommst du genau das Verhalten präsentiert was du gerade erlebst, dann sind mir die Fehlermeldungen alle klar
...
Die Amis(von der Anleitung) brauchen das nicht angeben weil bei denen das Komma per Default der Delimiter für eine CSV ist, im Gegensatz zu uns Alemannen bei denen das laut Ländereinstellungen das Semikolon ist.
Die Amis(von der Anleitung) brauchen das nicht angeben weil bei denen das Komma per Default der Delimiter für eine CSV ist, im Gegensatz zu uns Alemannen bei denen das laut Ländereinstellungen das Semikolon ist.

Bitte erstell die Datei mal ohne Excel pur mit Notepad. Siehe Hinweis zu Excel-Files oben.

Und schreibe den Code alternativ mal als Zweizeiler:
Man ist das eine Geburt hier für so ne simple Sch ... 
Guckst du auch hier:
AD New Object - Contact Powershell
$csv = Import-csv 'C:\kontakte.csv' -Delimiter ";" -Encoding Default
$csv | %{New-MailContact -Name $_.Anzeigename -DisplayName $_.Anzeigename -FirstName $_.Vorname -LastName $_.Nachname -ExternalEmailAddress $_.Email -OrganizationalUnit 'Domäne.Local/OU/Kontakte'}
Guckst du auch hier:
AD New Object - Contact Powershell

Zitat von @Xaero1982:
Nu hats geklappt mit dem Zweizeiler und der csv die ich ursprünglich erstellt habe.
Das scheint echt ein Bug zu sein, denn das habe ich schon mal erlebt, bei den meisten läuft der Einzeiler, aber vereinzelt nicht, hab ich noch nicht rausgefunden woran das liegt, vermutlich kleine PS oder .NET Versionsunterschiede, keine Ahnung ... egal Hauptsache das es jetzt bei dir läuft.Nu hats geklappt mit dem Zweizeiler und der csv die ich ursprünglich erstellt habe.
Du kannst es auch mal mit einem Klammernpaar rund um import-csv bei der Nutzung des Einzeilers probieren das hilft meistens auch in diesem Fall.
Gruß und schönen Abend