Back on Tuesday, July 01, 2008 I wrote the following blog on Microsoft Exchange and Search Folders. For this blog I also wrote a tool that would parse the isinteg.pri file to help identify exchange mailboxes that have high item counts or a high number of search folders, which lead to massive exchange server performance issues. I have re-written this tool in managed code using Visual Studio 2010 and it has a ton more functionality.

I have left the old version of the tool on the internet, and have also added a new version that will run on Windows 2008, Vista and Windows 7 machines. The new filename is  FindSearchFolder09.7z and it can be found here: http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=FindSearchFolders&ReleaseId=1456.

To run this version of the tool all you need to do is put the isinteg.pri file in the same directory as the tool and run it.

This is what the tools UI looks like. As you can see from the screen shot below, once a scan has run the tool will report back the different stages that it is in and how many mailboxes were found in the log.

image

Once the tool runs it will create the following directories:

image

All log files can be located in the Logs directory. As you can see from the following screen shot each time you run the tool it will create a new output file based on a time stamp. This version will no longer merge the results.

image

The output of the tool has changed as well. The new output looks like this:

 

10-28-2009  -  Find Search Folders Output - 10-28-2009-14.53.35.txt created. Program Logging - Enabled.
***************************************************************************************
Dave Goldman - Exchange Escalation Services
NOTE: There is no support for this tool and will be used as is!
Purpose: Scan an isinteg.pri file and find the highest search folder offenders
10-28-2009  -  Trace time: 10-28-2009-14.53.35
***************************************************************************************
10-28-2009  -  Program Initialization - Complete
10-28-2009  -  Create Program Directories - Start
10-28-2009  -  Directory already exists: C:\Users\dgoldman.NORTHAMERICA\AppData\Roaming\FindSearchFolder
10-28-2009  -  Directory already exists: C:\Users\dgoldman.NORTHAMERICA\AppData\Roaming\FindSearchFolder\Logs\
10-28-2009  -  Directory already exists: C:\Users\dgoldman.NORTHAMERICA\AppData\Roaming\FindSearchFolder\Backup\
10-28-2009  -  Create Program Directories - Complete
10-28-2009  -  Creating default mail handler - Complete
10-28-2009  -  Initializing Isinteg parser  - Complete
10-28-2009  -  Getting current application run path: D:\Tools\FindSearchFolders\Release
10-28-2009  -  Starting Isinteg parse - Start
10-28-2009  -  Search size set to: 75
10-28-2009  -  Isinteg is from: Server name: INCLCW02A.corp.statestr.com
10-28-2009  -  Isinteg was run against database: Database name: First Storage Group\Mailbox Store5 (INEMAL16)
10-28-2009  -  Processing Mailbox Table
10-28-2009  -  Display Name = Not Found - MBX Table dump only               

10-28-2009  -  Display Name = Goldman, Dave
                      Parent FID=0001-000001AB62E5
                      Root FID=0001-000001AB62E4
                      Restriction=
                      Name=Contacts
                      Folder FID=0001-000001AB1F4E               
                      Folder Type=1
                      Search Folder Count = 357  <- Is over 75 search folders and this is a BIG problem!
                      Backlink Folder Count = 357

10-28-2009  -  Processing Mailbox Table
10-28-2009  -  ==========================================================
10-28-2009  -  Mailbox Table
10-28-2009  -  ==========================================================
10-28-2009  -  Mailbox - Goldman, Dave - RootFID=0015-000012D75D62
10-28-2009  -  ==========================================================
10-28-2009  -  Total number of mailboxes with over 75 search folders: 1
10-28-2009  -  Highest number of search folders found in a single mailbox: 357
10-28-2009  -  Parent Folder: Parent FID=0001-000001AB62E5
10-28-2009  -  Highest offender is: Root 0001-000001AB62E4
10-28-2009  -  Total folders that do not contain search folders: 0
10-28-2009  -  Total mailboxes found on this information store: 1554
10-28-2009  -  ==========================================================
10-28-2009  -  ==========================================================
10-28-2009  -  These are the possible folder types
10-28-2009  -  ==========================================================
10-28-2009  -  Folder_Root = Folder Type = 0
10-28-2009  -  Normal_Folder = Folder Type = 1
10-28-2009  -  Search_Folder = Folder Type = 2
10-28-2009  -  MDB_Attachment_Folder = Folder Type = 4
10-28-2009  -  Repl_Folder = Folder Type = 5
10-28-2009  -  Categorization_Folder = Folder Type = 7
10-28-2009  -  ==========================================================
10-28-2009  -  Stat totals
10-28-2009  -  ==========================================================
10-28-2009  -  Total type Root Folders found: 1554
10-28-2009  -  Total type Normal folders found: 55580
10-28-2009  -  Total type Search Folders found: 1
10-28-2009  -  Total type MDB Attachment Folders found: 0
10-28-2009  -  Total type Repl Folder found: 0
10-28-2009  -  Total type Categorization (Views) Folders found: 4885
10-28-2009  -  ==========================================================

10-28-2009  -  NOTE: Folders with a type of 7 are cached views in the information store. For more information please see: http://technet.microsoft.com/en-us/library/bb124802(EXCHG.65).aspx To expire cached views from the information store, please see: http://technet.microsoft.com/en-us/library/bb124802(EXCHG.65).aspx

10-28-2009  -  Who has the highest search folder count in an isinteg dump
10-28-2009  -  ==========================================================
10-28-2009  -  1. Take the highest offenders RootFID and search the isinteg.pri file for this
10-28-2009  -  2. Look in the ESM and match these items counts and you should have your offending mailbox.
10-28-2009  -  Isinteg parse - completed

Dave