David 10 Geschrieben 21. September 2011 Melden Teilen Geschrieben 21. September 2011 Hallo ich habe ein Script gefunden was mir über Powershell und eine CSV Datei, Email Kontakte Importiert. Beim Start erhalten ich immer die Fehlermeldung Cannot bind argument to parameter 'ExternalEmailAddress' because it is null. + CategoryInfo : InvalidData: (:) [New-MailContact], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,New-MailContact The operation couldn't be performed because object ' ' couldn't be found on Server.name.local'. + CategoryInfo : NotSpecified: (0:Int32) [set-Contact], ManagementObjectNotFoundException + FullyQualifiedErrorId : F91F2397,Microsoft.Exchange.Management.RecipientTasks.SetContact # Create User Accounts & Mailboxes According to Information in contacts.csv (CSV Formatted) # NOTE: Be sure that the Contacts.csv file resides in the same directory as the script when running. # $_. (defined by $entry) calls the column in the CSV (e.g. $_.First calls the data from csv column titled First) # $_.First is First Name # $_.Last is Last Name # $DN is Display Name # $uLogin is User Login Name # $OU is the Organizational Unit for User Objects (String Value enclosed in '') # $Domain is the UPN Domain Name (either internal Domain Name or Public Domain Name if added as additional UPN Domain in Domains & Trusts, string value enclosed in '') # $Server is the Database Serer Name (String value enclosed in '') # $SG is the Storage Group Name for hosting Mailboxes # $MDB is the Mailbox Database Name for hosting Mailboxes # Define Common Variables $OU = 'Contacts' # Call CSV File & Create Mailboxes Write-host "Creating Contacts..." import-csv 'contacts.csv' | foreach{ $entry = $_ $DN = $_.First+" " +$_.Last; $Alias = $_.First+"_" +$_.Last New-MailContact $DN -DisplayName $DN -FirstName $_.First -LastName $_.Last -organizationalunit $OU -Alias $Alias -ExternalEmailAddress $_.email Set-Contact $DN -Company $_.Company -Title $_.Title -Department $_.Department -Fax $_.Fax -MobilePhone $_.Mobile -Office $_.Location -Phone $_.Tel -PostalCode $_.Zip -PostOfficeBox $_.POBox -City $_.City -StreetAddress $_.StreetAdd -CountryorRegion $_.Country Write-Host 'OU =' $OU Write-host 'First Name =' $_.First Write-Host 'Last Name =' $_.Last write-host 'Display Name =' $DN Write-Host 'Alias =' $Alias Write-Host 'Email Address =' $_.Email Write-Host 'Company =' $_.Company Write-Host 'Office =' $_.Location Write-Host 'Title =' $_.Title Write-Host 'Department =' $_.Department Write-Host 'Telephone =' $_.Tel Write-Host 'Fax =' $_.Fax Write-Host 'Mobile No. =' $_.Mobile } Meine CSV Datei sieht so aus:Last,First,Email,Company,Department,Title,Location,Tel,Fax,Mobile,POBox,Zip,StreetAdd,City,Country Gates,bill,gates.bill@microsoft.com,Microsoft Corporation,Executive,Chairman,Redmond,+1 (0)830 111111,+1 (0)11116727,+1 (0)111111780,8469,A9141,"1 MS Close",Redmond,United States of America Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 21. September 2011 Melden Teilen Geschrieben 21. September 2011 Du hast 2 Möglichkeiten. Entweder du benennst deine Spaltenüberschriften so um wie die Objektbezeichnungen im Script oder du benennst deine Objektbezeichnungen wie die Spaltenüberschriften. Email != ExternalEmailAddress Zitieren Link zu diesem Kommentar
David 10 Geschrieben 21. September 2011 Autor Melden Teilen Geschrieben 21. September 2011 Hallo Danke für deine schnelle Antwort, leider habe keine Ahnung was Du damit meinst: In meiner CSV steht doch LAST,FIRSTund im Script New-MailContact ..... -FirstName $_.First -LastName $_.Last Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 21. September 2011 Melden Teilen Geschrieben 21. September 2011 Bis dahin ist´s auch richtig. Aber es gibt in deiner csv keine Spalte ExternalEmailAddress, deswegen wird das auch an gemeckert. Der Fehler ist eigentlich ziemlich eindeutig. Zitieren Link zu diesem Kommentar
David 10 Geschrieben 21. September 2011 Autor Melden Teilen Geschrieben 21. September 2011 ich verstehe jetzt garnichts mehr! In der CSV steht doch EMAIL, und im Scipt -ExternalEmailAddress $_.email Zitieren Link zu diesem Kommentar
jarazul 10 Geschrieben 21. September 2011 Melden Teilen Geschrieben 21. September 2011 Ich glaube der Fehler liegt zwischen Executive und Chairman, da ist ein Komma. Soll das so? Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 21. September 2011 Melden Teilen Geschrieben 21. September 2011 Du hast recht, ich hab mich verlesen. Aber ich habe das jetzt mal nachgestellt, mit den deinen Daten eine csv erstellt und das Script so laufen lassen. Bei mir tuts, ohne große Änderungen. Hast du New-MailContact mal direkt mit dummy-Daten probiert? @jarazul: das mit dem Komma passt. Zitieren Link zu diesem Kommentar
David 10 Geschrieben 29. September 2011 Autor Melden Teilen Geschrieben 29. September 2011 habes jetzt auch hinbekommen, jetzt aber noch ne andere Frage. Wenn ich nun User migriere, und in meiner CSV z.b bei Titel nicht drinsteht, läuft der Script mit auf einen Fehler. Sobald ich aber was reinschreibe, läufts sauber durch. Kann ich das irgendwie umgeben / Abschalten oder was kann man da tun? Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 29. September 2011 Melden Teilen Geschrieben 29. September 2011 Da hast du mehrere Möglichkeiten. Entweder du bereinigst deine CSV Datei oder du änderst den Scriptteil von: Set-Contact $DN -Company $_.Company -Title $_.Title -Department $_.Department -Fax $_.Fax -MobilePhone $_.Mobile -Office $_.Location -Phone $_.Tel -PostalCode $_.Zip -PostOfficeBox $_.POBox -City $_.City -StreetAddress $_.StreetAdd -CountryorRegion $_.Country zu: Set-Contact $DN -Company $_.Company -Department $_.Department -Fax $_.Fax -MobilePhone $_.Mobile -Office $_.Location -Phone $_.Tel -PostalCode $_.Zip -PostOfficeBox $_.POBox -City $_.City -StreetAddress $_.StreetAdd -CountryorRegion $_.Country if ($_.Title){ Set-Contact $DN -Title $_.Title } oder probier mal das: Set-Contact $DN -Company $_.Company (if($_.Title) -Title $_.Title ) -Department $_.Department -Fax $_.Fax -MobilePhone $_.Mobile -Office $_.Location -Phone $_.Tel -PostalCode $_.Zip -PostOfficeBox $_.POBox -City $_.City -StreetAddress $_.StreetAdd -CountryorRegion $_.Country Das 3te kann ich aber nicht testen, sag mal ob das klappt. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.