Link to home
Start Free TrialLog in
Avatar of akorkishko
akorkishko

asked on

Address lists in Exchange 2010 with multiple CustomAttributes

Exchange 2010 SP1 RU5

I am trying to make dynamic address book lists according to Custom Attributes. I have some teachers that teach at different schools and they need to be put in address books which are set up for each school. I populated extensionAtrributes in AD with school locations which a teacher belongs to according to Human Resources. Then I made an address list with Custom Attributes set to multiple locations like this:

new-AddressList -Name 'test-fremont' -RecipientContainer 'sdw.ad/SCHOOLS' -IncludedRecipients 'AllRecipients' -ConditionalCustomAttribute2 '706' -ConditionalCustomAttribute3 '706' -Container '\Schools' -DisplayName 'test-school'

My AD extensionAttributes:

extensionAttribute 2 = 701  ==> Custom Attribute 2

extensionAttribute 3 = 706  ==> Custom Attribute 3

My problem is that I can't use (or don't know how to) multiple CustomAttributes as an 'OR' statement. In my statement above it command tries to meet all requirements. So if I have a teacher with multiple extensionAttributes in AD, I can't just pick one Custom Attribute. I was hoping to use an -OR statement in the new-AddressList command to populate those lists. Is there a way to use the -OR or is there a better way to create address lists and look at different Custom Attributes for location?

Thanks, Alex
Avatar of brota
brota
Flag of United States of America image

from this article you can use -or

•Powershell uses "-and", "-or", and "-not" (yes, with leading hyphen)


http://blogs.technet.com/b/exchange/archive/2007/01/10/3397707.aspx

Some good examples of -or
http://technet.microsoft.com/en-us/library/cc164375.aspx
Avatar of FDiskWizard
Try it this way:

Replace:  -ConditionalCustomAttribute2 '706' -ConditionalCustomAttribute3 '706'
With:        -RecipientFilter {(ExtensionAttribute2 -eq "701") -OR (ExtensionAttribute3 -eq "706")}

Have not tested. But I think that should do it.
Avatar of akorkishko
akorkishko

ASKER

Thanks for replies guys.

FDISKWizard, I have tried your recommendation and this is what I got:

[PS] C:\Windows\system32>new-AddressList -Name 'test-1' -RecipientContainer 'wsd.ad/SCHOOLS' -IncludedRecipients 'AllRec
ipients' -RecipientFilter {(ExtensionAttribute2 -eq "701") -OR (ExtensionAttribute3 -eq "706")} -Container '\Schools' -D
isplayName 'test-school'
Parameter set cannot be resolved using the specified named parameters.
    + CategoryInfo          : InvalidArgument: (:) [New-AddressList], ParameterBindingException
    + FullyQualifiedErrorId : AmbiguousParameterSet,New-AddressList

Any clues?
try this

-RecipientFilter {(RecipientType -eq 'UserMailbox') -and (ExtensionAttribute2 -eq "701")  -or  (ExtensionAttribute3 -eq "706")}
Same error:

[PS] C:\Windows\system32>New-AddressList -Name 'test-1' -RecipientContainer 'wsd.ad\Schools' -IncludedRecipients 'AllRecipients' -RecipientFilter {(RecipientType -eq 'UserMailbox') -and (ExtensionAttribute -eq "701") -or (ExtensionAttribute -eq "706")} -Container '\Schools' -DisplayName 'test-1'

Parameter set cannot be resolved using the specified named parameters.
    + CategoryInfo          : InvalidArgument: (:) [New-AddressList], ParameterBindingException
    + FullyQualifiedErrorId : AmbiguousParameterSet,New-AddressList

Thanks again for the help.
ASKER CERTIFIED SOLUTION
Avatar of brota
brota
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks guys, figured it out. You had me on the right path. I had to replace extensionAttribute with CustomAttribute, I guess Exchange doesn't see 'extensionAttribute' from AD.

My final command looks like this, in case someone else runs into this:

[PS] C:\Windows\system32>New-AddressList -Name 'test-1' -RecipientContainer 'wsd.ad' -RecipientFilter {(CustomAttribute2 -eq "701") -or (CustomAttribute3 -eq "706")} -Container '\Schools' -DisplayName 'test-1'

Since both of you helped me, can I give points to both of you?
yes the points can be split

I added my own solution for others to see the correct syntax