Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 697
  • Last Modified:

Exchange 2007 Userdefines Parameters in powershell

Hi @all. One more silly question just before Christmas :):
I have an Exchange 2007 installed in German.
I have to import quite a lot of external contacts which should then be member of a dynamic distribution list. The argument for the membership should be a keyword in the user defined parameters (1-15) of the contact.
my problem is, that i don't know the exact expression for the argument in the powershell. i tried the following list:
extensionAttribute1
userdefinedAttribute1
BenutzerdefiniertesAttribut1
...

The powershell command I run is this:
Import-Csv d:\import\KES-Liste1.csv | ForEach {New-MailContact -LastName $_.Nachname -Firstname $_.Vorname -Name $_.Name -DisplayName $_.Anzeigename -ExternalEmailAddress $_.ExterneEMailAdresse -Alias $_.Alias -OrganizationalUnit "pizh.local/KES" -customAttribute1 $_.BenutzerdefiniertesAttribut1 -CustomAttribute2 $_.BenutzerdefiniertesAttribut2 -CustomAttribute3 $_.BenutzerdefiniertesAttribut3}

With that I always the error:
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.Exchange.Management.RecipientTasks.NewMailContact

The csv-file looks like this:
Nachname,Vorname,Name,Anzeigename,ExterneEMailAdresse,Alias,BenutzerdefiniertesAttribut1,BenutzerdefiniertesAttribut2,BenutzerdefiniertesAttribut3
TestNachname,TestVorname,KES TestNachname TestVorname,KES TestNachname TestVorname,test@test.de,KESTestNachnameTestVorname,,KES,
(of course just one test argument).

Any ideas. I'll appreciate your suggestions :).
0
konga-frites
Asked:
konga-frites
  • 8
  • 7
  • 2
  • +1
3 Solutions
 
Rajitha ChimmaniCommented:
From the contents of csv that you posted it looks like there is some mismatch in the last three columns. Can you attach the values in your question in a csv file?
0
 
SubsunCommented:
New-MailContact does not have parameter for custom attributes you need to add Set-MailContact for that..
0
 
konga-fritesAuthor Commented:
here you are, 9 field definitions and 9 arguments (the last is emty! -> just a comma)
The problem doesn't seem to be the number of arguments, defined or not, it is the wrong name of the parameter which expresses the user defined attributes in exchange.
KES-Liste1.csv
Import-Script-KES.ps1.txt
0
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 
SubsunCommented:
Try somthing like..
Import-Csv d:\import\KES-Liste1.csv | ForEach {New-MailContact -LastName $_.Nachname -Firstname $_.Vorname -Name $_.Name -DisplayName $_.Anzeigename -ExternalEmailAddress $_.ExterneEMailAdresse -Alias $_.Alias -OrganizationalUnit "pizh.local/KES" |
Set-MailContact -customAttribute1 $_.BenutzerdefiniertesAttribut1 -CustomAttribute2 $_.BenutzerdefiniertesAttribut2 -CustomAttribute3 $_.BenutzerdefiniertesAttribut3}

Open in new window

0
 
konga-fritesAuthor Commented:
@subsun: I'll try that - should this work (attached File)????
Import-Script-KES-Variante.ps1.txt
0
 
SubsunCommented:
It should work.. or you can just pipe the New-MailContact output to Set-MailContact as I mentioned in above comment..
0
 
Rajitha ChimmaniCommented:
You can also use your script this way.

Import-Csv d:\import\KES-Liste1.csv | ForEach {New-MailContact -LastName $_.Nachname -Firstname $_.Vorname -Name $_.Name -DisplayName $_.Anzeigename -ExternalEmailAddress $_.ExterneEMailAdresse -Alias $_.Alias -OrganizationalUnit "pizh.local/KES"
Set-MailContact -Identity $_.Anzeigename -CustomAttribute1 $_.BenutzerdefiniertesAttribut1 -CustomAttribute2 $_.BenutzerdefiniertesAttribut2 -CustomAttribute3 $_.BenutzerdefiniertesAttribut3
}

Open in new window

0
 
GusGallowsCommented:
The problem you are running into is the customattribute is not a valid parameter for new-mailcontact. You will need to do that piece using the Set-mailcontact. So create your contacts first, then use the set-mailcontact parameter to set the customattribute fields.
0
 
GusGallowsCommented:
Gah, got ninjaed. Well, what he said.
0
 
konga-fritesAuthor Commented:
So do I get you right: the ps keeps the arguments and the csv in memory until the console is closed?
Ok. I'll try later cause on the move right now. Will give you feedback.
0
 
SubsunCommented:
If you assign it to a variable then yes.. For example
$temp = Import-Csv d:\import\KES-Liste1.csv
then $Temp will save the information until you close the console or re-assign it. You can also change the scope of variable in PowerShell..
0
 
konga-fritesAuthor Commented:
Hey guys - thanks for your help. As there are holidays and my family and I are on break till new year. I'll test immediately after back in business. So far - happy new year.
0
 
SubsunCommented:
No problem, take your time...  Have a safe, happy and successful New Year :)
0
 
konga-fritesAuthor Commented:
@Subsun: Your Solution worked for this Problem but

@all:
I have now another "problem" with altering existing records.

If I want to change for multiple users one value of a field according the value in an ascii export from another tool.

So the command in the ps I use is this:

Import-Csv d:\import\KES-Liste.csv | ForEach
{
    Set-MailContact -Identity $_.Alias -CustomAttribute1 $_.BenutzerdefiniertesAttribut1
}

the values in the KES-Liste.csv are this
Nachname,Vorname,Name,Anzeigename,ExterneEMailAdresse,Alias,Organisationseinheit,Benutzerdefiniertes Attribut 1,Benutzerdefiniertes Attribut 2,Benutzerdefiniertes Attribut 3
Sample_N,Sample_SN,KES Sample_N Sample_SN,KES Sample_N Sample_SN,Sample_N@hotmail.com,KOESample_NSample_SN,OU_Sample,Unit_1,Unit_2,Unit_3

With that I get the following hint:

WARNUNG: Der Befehl wurde erfolgreich abgeschlossen, es wurden jedoch keine
Einstellungen von 'domain.local/OU_Sample/KES Sample_N Sample_SN' geändert.

Which means something like:
Warning: The command was completed successful, although no settings of  'domain.local/OU_Sample/KES Sample_N Sample_SN' were changed.

No more hints from the ps why nothing was changed. The values in the csv are definitely different to them in the AD.

Some more hints????

Tanks a lot in advance.
0
 
SubsunCommented:
If this is a different problem then I would suggest you to open another question for it.. ;-)

BTB.. What if you run the command manually for one user? before running the command check the users attribute and make sure it's not same..
Set-MailContact -Identity KOESample_NSample_SN -CustomAttribute1 "Unit_1"
0
 
konga-fritesAuthor Commented:
This works fine :) - but as you suggested I'll open another question for that :) - fairness first! of course
0
 
SubsunCommented:
Thanks.. You may post the link to the follow-up question here, so that it will be easy for us to find it..
0
 
konga-fritesAuthor Commented:
as subsun was the first he deserved the lion's share. but there were also Rajitha14 and GusGallows who had the same problem-solving approach.this should also be rewarded :).

Hope you guys are satisfied with that :).
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 8
  • 7
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now