Need Exchange 2010 tool to do selective purge


I have been tasked to find some kind of script or program that can do the following.

1. Reach into all existing Exchange accounts
2. Read each email between a certain date range
3. Apply a conditions based filter and delete each email that finds a match.

For example, if an email has a certain email address in the to, from, subject, or body of an email, delete it.  If not, check the next condition, etc...  I have a list of such conditions that need to be searched for, so the ability to nest AND/OR statements it a must.

Can anyone recommend any software or script that can do this?

LVL 10
Who is Participating?
Raj-GTConnect With a Mentor Systems EngineerCommented:
The searchstring could simply be " OR OR AND secondword OR thirdword OR fourthword". You can test your search query using the multi mailbox search feature in exchange 2010. This will not allow you to delete the messages but just copy them to a target mailbox. See link below for instructions...
Raj-GTSystems EngineerCommented:
You can use the search-mailbox powershell cmdlet for this. See

You can search across all mailboxes in your Exchange Organization and delete/move mails matching your criteria to a target mailbox.
TakedaTAuthor Commented:
Thanks, Raj-GT.  This looks really powerful, but also really dangerous if a typo is made.  Could you also point me to some help on setting up a complex query?  I looked around all I can find is rather simple queries.  Or if you can lend a hand yourself.

For example, I have a list of domain names that I need to find in all parts of an email, To:, From: Subject: Body. and delete any found.

Then I have a list of keywords to find matches on.  For example, if an email has the word 'firstword' but also has 'secondword' in it.  Then 'firstword' and 'thirdword'.  and delete these if found.

So a brief summary would be:
Match all emails where To: OR From: OR Subject: OR Body: contains any of the following
-end of first condition
Match any email with 'firstword' AND at least one of the following:
-end of second condition

I would like to do this in one pass if possible.  the way it looks is I may need to do 25 or so passes as my list of words is at about 20.
TakedaTAuthor Commented:
OK, you got me in the right direction.  It looks like it takes nested statements inside parenthesis like a normal math equation.  So doing " OR OR (firstword AND secondword) OR (firstword AND thirdword) OR etc..." does what I need.

Thanks for the help.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.