Current version: 1.1.4
This script can be used to list all the named properties, and the items containing those named properties, in a mailbox. It is intended for use in clearing invalid properties (e.g. too many created with the same name or same Guid).
This script must be run within an Exchange Management PowerShell session, but this can be a remote session. This script does require the ManagedStoreDiagnosticsFunctions.ps1 script to work, and this must be copied from an Exchange server (it can be found in the Public folder of the Exchange installation, and will also work remotely).
For an example of how this script is intended to be used, please see the related blog post. I will update documentation as time allows in case there are further questions.
One of MailboxServer, MailboxDatabase, or Maibox is required.
|-MailboxServer||If specified, all mailboxes on the specified server will be processed.|
|-MailboxDatabase||If specified, all mailboxes within the specified database will be processed.|
|-Mailbox||If specified, the single mailbox will be processed.|
|-Archive||If set, the archive mailbox will be processed (otherwise primary mailbox will be accessed). Only applies when mailbox is specified.|
|-Restartable||If set, the script will read the EntryId dump file from any previous runs and will not search for messages if that has previously been done for a particular property.|
|-SaveRestartInfoInterval||This value determines how often the found EntryIds are dumped while the script runs. The default is that the information is saved at 50 item interval (i.e. every time 50 items are identified, the file will be saved).|
|-DumpPropsIfTotalExceeds||If more than this number of named properties are found, they will be dumped to DumpPropsPath as an Xml file. The default is 0.|
|-SearchNamedProp||The name of the property to search for. This supports wildcard *, so if you are searching for all named properties that start with "BadNamedProp", you can use "BadNamedProp*". This would match BadNamedProp1, BadNamedProp2, etc.|
|-SearchGuid||The Guid of the property to search for.|
|-NamedPropType||The MAPI type of the property (e.g. 001f is a string). This must be specified as four digits.|
|-DumpPropsPath||The path where output files are saved.|
|-DumpEntryIds||If this switch is specified, then the mailbox will be searched for items that have each identified named property. This can take a very long time, as a search needs to be done for every property that was found.|
|-PowerShellUrl||The PowerShell Url for the Exchange remote session (if not already loaded) - you'll be prompted for credentials if necessary.|
|-LogFile||The log file.|