In this download I've written the C# (.Net Framework 3.5) version of the script for checking each folder in each mailbox on a specified Exchange Server for the 'Do Not Archive' flag.
Users can set this flag, if they have the correct client installed (eg DCOM or 10.0.1 Unified) and have the ability to set it via policy.
Admins can set it using EVPM.
Either way it can sometimes be a pain to work out WHY a folder, or a whole mailbox is not being processed by the Exchange archiving task.
To use the attached, you'll need to have Redemption installed. You can get that from here: http://www.dimastr.com/redemption/download.htm
You need to login to a workstation that has .Net framework 3.5 installed, as that is what the Visual Studio 2010 solution is built against.
You need to be logged in as someone who has the ability to login to every mailbox on the specified server. [eg the Vault Admin account]
I have not tested this on Exchange 2010, only 2007 and 2003.
You run the code by taking the .exe (and the Interop.Redemption.dll) from the 'Release folder' and running:
DoNotArchiveChecker 0 EXCH1
0 means no debugging information
EXCH1 is the name of your Exchange server.
Sample output for a test user:
Starting to process: 14:30:57 PM >> Processing << a1 Top of Information Store Calendar Contacts Conversation Action Settings Deleted Items Drafts hhh Inbox rrrr - Do Not Archive is set on above folder tttt Journal Junk E-mail - Do Not Archive is set on above folder News Feed Notes Outbox Quick Step Settings RSS Feeds Sent Items - Do Not Archive is set on above folder Suggested Contacts Tasks
Hope it proves useful.