Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 7

CalCheck:

Checks Outlook calendars and items, and reports problems.

Usage:
You can edit the CalCheck.cfg file to turn specific tests on or off.

CalCheck [-P <profilename>] [-L <path\file>] [-M <LegacyExchangeDN>] [-N


<Display Name>] [-O <path>] [-C <Version>] [-A] [-F]
[-R] [-V]
CalCheck -?

-P <Profile name> (if absent, will prompt for profile)


-L <List File> (file including Name and LegDN) of mailbox(es) to check
-M <Mailbox DN> Used with -N (if specified, only process the mailbox
specified.)
-N <DisplayName> Used with -M (if specified, only process the mailbox
specified)
-O <Output Path> (path to place output files - default is the current
directory)
-C <Version> Click To Run scenario with Office 2013 - load a specific MAPI
version
-A All calendar items output to CALITEMS.CSV
-F Create CalCheck Folder and move flagged error items there
-R Put a Report message in the Inbox with the CalCheck.log file
-V Verbose output to the command window
-? Print this message

There will be resulting CalCheck.log and CalCheckErr.csv files that show


potential problems and/or items to fix or remove as well as processing information.

Examples
========

Default - Prompt for a profile, and process the mailbox in that profile:
CalCheck

Process just the mailbox in MyProfile:


CalCheck -P MyProfile

Process List of mailboxes in "C:\Directory\List.txt":


CalCheck -L "C:\Directory\List.txt"
"List.txt" needs to be in the format of Get-Mailbox | fl output that includes
the LegacyExchangeDN and Name for each mailbox, like:
Name : Display Name
LegacyExchangeDN : /o=ORG/ou=AdminGroup/cn=Recipients/cn=mailbox

Process a mailbox this user has full rights to:


CalCheck -M <LegacyExchangeDN of the mailbox> -N <Display Name of the
mailbox>

Process a mailbox and move error items to the CalCheck folder in the mailbox,
and place a report message in the Inbox:
CalCheck -F -R

Process a mailbox based on a specific profile and version of MAPI for Click To
Run scenario:
CalCheck -C <Outlook version - like 2007, 2010, 2013> -P MyProfile
Print this message
CalCheck -?

==================================================================

Privacy Note:
The data files produced by CalCheck can contain PII such as e-mail addresses.
Please delete these files from your system after analysis and/or supplying them to
Microsoft for analysis.
For more information on Microsoft's privacy standards and practices, please go to
http://privacy.microsoft.com/en-us/default.mspx.

*** NOTE: Please note that running CalCheck in Multi Mailbox mode or against
anotehr user's Calendar where your account has full access only
works when running against Exchange 2010 or earlier versions.

Running CalCheck in Multi Mailbox (List) Mode:


===================================================================

A. Give Rights To An Account To Run CalCheck In Multi Mailbox Mode


B. Create A Text File With A List Of Mailboxes To Run Against
C. Run CalCheck In Multi Mailbox Mode

Give Rights To An Account To Run CalCheck In Multi Mailbox Mode


===============================================================

1. Give a user "FullAccess" to all mailboxes on the server or in the Org.


A sample Powershell command to do this:

Get-Mailbox -OrganizationalUnit "OUName" | Add-MailboxPermission -User


"UsersName" -AccessRights FullAccess

Create A Text File With A List Of Mailboxes To Run Against


==========================================================

1. Open Exchange Powershell and run a command to get a list of mailboxes including
the Name and LegacyExchangeDN.
A sample command to do this:

Get-Mailbox -Server "ServerName" | fl Name, LegacyExchangeDN | Out-File <path


and file name> -width 200

2. Copy this file to the machine/location where you will run CalCheck

Run CalCheck In Multi Mailbox Mode


==================================

1. Log into a machine with Outlook installed as the user you gave FullAccess to for
the mailboxes.
2. Create an Online Outlook profile for that user.

3. Open the command window and change to the directory where CalCheck is located
and run the following command:

CalCheck -L <path and file name>

===================================================================================
===========================================================

12/22/2015 Release:
===================
Added a test to find non EX or SMTP type addresses in the recipient table on items.
Will flag a warning on these items as they can cause address lookup problems.

11/25/2015 Release:
===================
Added test for a bad dispidPropDefStream property. If bad then Outlook could be
crashing when trying to open these items.
Fixed up some bad KB article links in the CalCheck output.

8/11/2015 Release:
==================
Updated how CalCheck works with DBCS character sets. Will print out errors, but the
DBCS text will get changed to question mark (?) characters.
Other information about these items like start and end date and times should help
in finding these items.
Added test for the dispidApptTZDefRecur property - if it is corrupt then Outlook
will potentially have problems opening these items.

5/1/2015 Release:
=================
Fixed a crashing issue when trying to log into servers other then Exchange servers
using MAPI.
Fixed a problem where strings might have a CR/LF in them - which might skew the
reporting in the CSV output.

4/13/2015 Release:
==================
New icon for CalCheck.
Fixed a string bug in the output when the X500 DN of the mailbox has a comma. It
skewed the resulting CalCheckErr.csv.

7/18/2014 Release:
==================
Changed reporting of error and warning items to output to a CSV file
(CalCheckErr.csv). This allows for filtering of the output as opposed to scrolling
through the log file.
Added test for Sender Name and Sent Representing Name.
Added test for Birthdays (will test and skip if item is an all day event and has
birthday in the subject)
Fixed a problem with smart apostrophes in reporting.
Fixed crashing problem if CSV file is opened while attempting to run CalCheck.
Fixed a time formatting problem.
Removed reporting of an exception occurring before the series start - since you can
move the first instance before the original start.

9/9/2013 Release:
=================
Fixed memory leak issues that caused CalCheck to hang when run on machines with
Outlook 2013 installed.
Fixed issues with CSV output.
Updated logging so that the time for lines is not output - instead a Start and
Finish time are logged.
Updated some other logging areas to be better.

7/10/2013 Release:
==================
Fixed issue where CalCheck did not run correctly on WindowsXP.

6/17/2013 Release:
==================
New CalCheck.cfg option - WarningIsError. Default is False, when set to True in the
cfg file then all items flagged as Warning items will be moved to the CalCheck
folder in the mailbox when using the "-F" switch.
Added new testing for problems in the recipient table.
Added the dispidTimeZoneStruct property to output when dumping message properties
to CSV using the "-A" switch.

10/19/2012 Release:
===================
New Switches added.
-L > Replaces the -S switch. Due to a problem with getting the mailbox
table on Exchange 2010 servers, this new switch was added to allow multiple
mailboxes to be scanned in Exchange 2010 and later. Please see the instructions for
"Running CalCheck in Multi Mailbox Mode" to see how to use the -L switch.
-M and -N > Added the -N switch and coupled it with the -M switch. The Mailbox DN
and the Display Name are needed for CalCheck to get all the proxy addresses when
running the tool to connect to and scan a mailbox your user has rights to open (not
the mailbox that the current profile opens as the default primary mailbox). The
proxy addresses are used for the "Attendee Becomes the Organizer" test to ensure
the test is run as well as it can be run.
-C > Click To Run scenario. Outlook 2013 can be installed through Click To
Run, and so can be installed side by side with a previous version of Outlook. The
-C switch followed by the Outlook version (2013, 2010, 2007) will load that
specific version of MAPI, which is needed to be able to choose profiles for that
version of Outlook, etc.
Added a Config File.
CalCheck.cfg is in the directory with CalCheck.exe. If it's not there then the tool
will error and not run. You can edit this file (it is plain text) and set
individual tests on or off. The default is that all tests are set to true/on, and
will run.

New tests that can be configured have been added.


ItemSize10 > Report items greater than 10M in size
HolidayItems > Check and report against Holiday items
PastItems > Check and report items that ended in the past
All other tests that already existed in CalCheck are also configurable to on/off -
there is a brief explanation of each test in the CalCheck.cfg file

7/11/2012 Release:
==================
Added a check for greater than 25 attachments - if more than 25, then item will be
reported with a Warning
Fixed a few bugs with Time-checks.
Changed how logging gets done - more will be happening in this space later.
Removed Holiday items from being checked.

5/16/2012 Release:
==================
Fixed the GlobalObjectID test to work better in full server mode.
Added reporting on items that ended in the past.
Added a check for Exception Data to ensure the Start and Ending times for
exceptions are within the boundaries of the series. If not then the item will be
reported.
Added better reporting for errors that occur during the non-testing phase, such as
at logon, accessing various tables in the mailbox, etc.

4/27/2012 Release:
==================
Added a check for detecting items in the Calendar that have the same Global Object
ID.
Added a check for detecting items that are greater than 25M in size and greater
than 50M in size (Warning).
Added a switch to allow redirection of the output files so a user can direct output
to a separate folder.
Updated the "Attendee becomes the Organizer" test to work with all proxy addresses
of the user. This significantly reduces false positives on this test.

1/16/2012 Release:
==================
Added a check that looks at the recurrence data to ensure that certain fields are
the correct size - if not then it will report an error. The problem symptom here
would be that a user's Free Busy information would not show correctly.
If the recurrence data on an item is badly corrupted - it is possible that the
MrMAPI utility (it parses the recurrence data for CalCheck) will return an error -
and that will also show in the CalCheck log.

11/21/2011 Release:
===================
Added a check for the problem where an attendee becomes the organizer of a meeting.
This test checks the current Exchange DN of the user against the
PR_SENT_REPRESENTING_EMAIL_ADDRESS property to see if they match - along with the
dispidApptStateFlags property on the item to see if it is set as the Organizer.
If you have gone through a migration, or have otherwise changed the Exchange DN of
users in your oganization, then this test will potentially report errors when in
fact things might be fine on items it reports in error.

Because of the impact of the above - and the potential perf impact of checking for
duplicate items, I added a new switch:

-No [org] [dup]

-No org : Will not perform the above Organizer check


-No dup : Will not perform the duplicate calendar item check

Others checks might have the option of being disabled in the future, but these seem
the most impactful presently.

8/4/2011 Release:
=================
Added two new checks - one for detecting duplicate items in the Calendar, and one
for checking to see if there are too many recurring meetings in the Calenar. There
is a limit of 1300 recurring meetings/appointments in the Calendar - so the tool
will now give a warning at 1250 and an error at 1300 recurring items as it counts
them.
The duplicate item check will report an error when a duplicate is found, and using
the -F switch will move them to the CalCheck folder in the mailbox.
Added some new reporting in the CalCheck log to show the number of problem items,
number of errors and number of warnings.
In server mode the CalCheckSvr log will show the same - plus a list of mailboxes
that had problem items in them.

6/6/2011 Release:
=================
Added a new switch: -R
This will create an email message in the Inbox folder with the CalCheck.log as an
attachment. Makes things easier when CalCheck is run in server mode - each user
will get their CalCheck log showing any problems, etc.
Also makes things easier for collecting the data from the user since the log will
be in an e-mail - and can be quickly forwarded to support.

5/25/2011 Release:
==================
Updated the -F switch so that it will also move any meeting conflict items to the
CalCheck folder. This was a request since there was an issue with moving a mailbox
when there are meeting conflict items in the Calendar.

5/6/2011 Release:
=================
There was a problem with the tool when calling MrMAPI.exe under certain conditions
with a long path. Fixed that in this release.

5/3/2011 Release:
=================
There was a problem with running with the -F switch that caused CalCheck to crash.
I fixed that in this release.
4/4/2011 Release:
=================

Added a new switch: -F


This will create a folder in the Outlook folder hierarchy called CalCheck, and will
move the flagged error items out of the Calendar folder and into the CalCheck
folder. A user could then recreate the problem item(s) if needed. Items that are
moved to the CalCheck folder can be moved back to the Calendar folder, or deleted,
etc. After any fixes are completed, the CalCheck folder can then be manually
deleted/removed from Outlook.

Updated the below recurring item check (3/21 release) to handle Updated items
better.

3/21/2011 Release:
==================

Added a new check for recurring items where certain properties are not lined up
correctly and could cause a crash in Outlook.

Added an overall "CalCheckSvr.log" to the output when running in Server mode. It


shows the reported items for all the mailboxes scanned in server mode to make
things a little easier to find.

You might also like