CalCheck - Outlook 行事曆檢查工具
英文原文已於 2012 年 2 月 23 日星期四發佈
過去一年來我憑藉著擔任 Outlook 工程師的經驗,同時借助其他工程師的寶貴建議,一直致力於研發這項工具,增加了一些功能同時進行了一些檢查。這項工具終於在今年的二月發行,現在我們所有的客戶都可以下載此工具,並用它來檢查他們行事曆是否有什麼潛在的問題。希望它能在您的 Outlook 行事曆或組織中某位使用者的 Outlook 行事曆出問題時,有效減少所需的應變時間。
安裝
從 Microsoft 下載中心下載 CalCheck (可能為英文網頁)。
此公用程式適用於:
- Microsoft Office Outlook 2003
- Microsoft Office Outlook 2007
- Microsoft Office Outlook 2010 (32 位元)
- Microsoft Office Outlook 2010 (64 位元)
- Microsoft Exchange Server 2003
- Microsoft Exchange Server 2007
- Microsoft Exchange Server 2010
重要:此工具的 64 位元版本僅適用於 64 位元版本 的 Microsoft Outlook 2010。
下載檔案是一個 ZIP 檔。請將它解壓縮到空的目錄,然後以該目錄開啟命令視窗,再加以執行。
CalCheck 的用途
Outlook 的行事曆檢查工具 (CalCheck) 是一個命令列程式,可檢查 Microsoft Outlook 行事曆是否有問題。該工具會開啟 Outlook 設定檔以存取 Outlook 行事曆。此工具會進行多項檢查,例如權限、空閒/忙碌發佈資訊、委派設定以及自動登記等。接著會再檢查行事曆資料夾中的每個項目,是否存在已知而可能導致未預期行為的問題,例如會議遺失等等。
CalCheck 跑過這道流程時,會產生可用以協助診斷問題項目或找出趨勢的報告。
進行的檢查
會進行下列行事曆專屬檢查,並記錄在報告中:
- 行事曆上的權限
- 行事曆上的委派
- 空閒/忙碌發佈資訊
- 信箱或行事曆的直接登記設定
- 行事曆資料夾中的項目總數
會進行下列項目層級檢查,並記錄在報告中:
- 無召集人的電子郵件地址
- 無寄件者的電子郵件地址
- 無 dispidRecurring 屬性 (會造成物件無法在 [日/週/月] 檢視中出現)
- dispidApptStartWhole 與 dispidApptEndWhole 屬性的存在時間
- 未來或週期性會議沒有會議主旨 (會記錄警告)
- 郵件類別檢查 (會記錄警告)
- 會在整體開始和結束時間上檢查 dispidApptRecur (週期 Blob) 的時間,而非在例外狀況時檢查
- 檢查行事曆中是否存在相衝突的項目
- 依據特定的 MAPI 屬性,檢查是否有重複的項目
- 檢查是否有超過 1250 個週期性會議 (會記錄警告) 或超過 1300 個週期性會議 (會報告錯誤);上限為 1300
- 檢查您是否應是某會議的出席者,但卻變成了會議召集人
- 檢查會議例外狀況資料,確保它的大小正確
伺服器模式
您也可以選擇以伺服器模式執行 CalCheck。在伺服器模式下,CalCheck 會嘗試在 Exchange 伺服器上開啟所有信箱,然後進行本文中「進行的檢查」一節所列出的檢查項目。伺服器模式會產生 CalCheckSvr.log 檔案,列出有錯誤的信箱。此外,CalCheck 還會為每個信箱個別產生一個 CalCheck__.log 檔案。此記錄檔會顯示出更多信箱專屬的詳細資訊。
若要使用伺服器模式,您必須使用與帳號相關聯的訊息設定檔,該帳號必須具有存取指定的 Exchange 伺服器上所有信箱的權限。若要執行伺服器模式,請使用 "-S" 命令列參數。
範例
執行檢查單一信箱/行事曆:
如果未在命令列中指定設定檔,系統將會提示您選擇設定檔,如上圖所示。
選好設定檔之後,會開始執行工具。只要一切皆正確運作,就會看到類似的輸出結果:
看到此視窗表示有 CalCheck.log,並會告知它的所在位置。開啟它就會顯示出類似以下資訊:
02/17/2012 05:09:20PM Calendar Checking Tool - Version 1.0
02/17/2012 05:09:20PM ====================================
02/17/2012 05:13:45PM Opening mailbox: Mailbox 02/17/2012 05:13:45PM /O=Org/OU=OU/cn=Recipients/cn=Mailbox
02/17/2012 05:13:45PM Local time zone: Eastern Standard Time 02/17/2012 05:13:45PM Successfully opened the Calendar folder. 02/17/2012
05:13:45PM Processing calendar for Mailbox
02/17/2012 05:13:46PM Successfully located and opened the local free busy message for this mailbox.
02/17/2012 05:13:47PM Publishing 2 month(s) of free/busy data on the server.
02/17/2012 05:13:47PM Resource Scheduling / Automatically accept meeting requests is disabled.
02/17/2012 05:13:47PM ====================================
02/17/2012 05:13:47PM Delegates for this mailbox:
02/17/2012 05:13:47PM ===========================
02/17/2012 05:13:47PM No delegates are set.
02/17/2012 05:13:47PM ===========================
02/17/2012 05:13:47PM Permissions on this Calendar:
02/17/2012 05:13:47PM =============================
02/17/2012 05:13:47PM Default: None
02/17/2012 05:13:47PM Manager: Reviewer
02/17/2012 05:13:47PM Coworker1: None
02/17/2012 05:13:47PM Coworker2: Reviewer
02/17/2012 05:13:47PM Coworker3: Reviewer
02/17/2012 05:13:47PM =============================
02/17/2012 05:13:48PM Found 1404 items in the Calendar. Processing...
02/17/2012 05:13:48PM WARNING: No Subject on this item. You may want to add a Subject to this item.
02/17/2012 05:13:48PM Properties to help investigate this reported item: 02/17/2012 05:13:48PM Subject:
Location: No subject on recurring item
Start Time: 01/11/2011 10:00:00PM
End Time: 01/11/2011 10:30:00PM
Last Modifier: Mailbox
Last Modified Time: 02/04/2011 02:48:08PM
Is a recurring appointment: true
Sender Name: Mailbox
Sender Address: /o=Org/ou=OU/cn=recipients/cn=Mailbox
Organizer Name: Mailbox
Organizer Address: /o=Org/ou=OU/cn=recipients/cn=Mailbox
Recurrence Start: 12:00:00.000 AM 1/11/2011
Recurrence End: 12:00:00.000 AM 2/1/2011
Recurrence End Type: End After X Occurrences
Number of Exceptions: 0x0000
02/17/2012 05:13:50PM ERROR: Detected a duplicate item in the Calendar. Please check this item.
02/17/2012 05:13:50PM Properties to help investigate this reported item:
02/17/2012 05:13:50PM Subject: Doctor appointment
Location: Doctor’s Office
Start Time: 03/04/2012 04:30:00PM
End Time: 03/04/2012 06:00:00PM
Last Modifier: Mailbox
Last Modified Time: 08/01/2011 06:29:05PM
Is a recurring appointment: false
Sender Name: Mailbox
Sender Address: /o=Org/ou=OU/cn=recipients/cn=Mailbox
Organizer Name: Mailbox
Organizer Address: /o=Org/ou=OU/cn=recipients/cn=Mailbox
對於找到的問題項目,報告會提供您可用以找出問題項目的資訊,以便您移除、重新建立或加以修正 (如果可能的話)。
命令參數及其用途
CalCheck [-P ] [-M ] [-S ] [-A] [-F] [-R] [-V] [-No] CalCheck -?
-P 設定檔名稱 (若未指定此參數,工具會提示您要指定設定檔)
-M 信箱 DN (若指定此參數,就只會處理指定的信箱)
-S 伺服器名稱 (除非指定了信箱,否則將會處理完整的伺服器)
-A 所有輸出到 CALCHECK.CSV 的行事曆項目
-F 建立 CalCheck 資料夾,並將標記的錯誤項目移至該資料夾
-R 在 [收件匣] 中傳入一筆內含 CalCheck.log 檔的報告訊息
-V 輸出詳細資訊到命令提示字元視窗
-No 省略行事曆項目測試
No 參數可與 org 並用,以省略「出席者變成召集人」測試;或與 dup 並用,以省略偵測重複的項目
-? 列印此訊息
關於特定參數的一些其他秘訣:
“-M” 您必須使用該信箱的 legacyExchangeDN,而且您使用的設定檔必須是某個有權限能開啟另一個信箱的信箱設定檔。
“-A” 會建立一個內含所有行事曆項目的 CSV 檔,一列一個項目。每個項目都會列出幾種屬性,用以找尋工具未偵測到的問題:
您可以在 Excel 中開啟 CSV 檔,查看行事曆中的所有項目。也可依開始時間、主題、週期性項目等內容,排序或篩選項目。這對於尋找 CalCheck 無法偵測到或 CalCheck 目前不在尋找的問題十分有幫助。如果您在 CSV 中找到一個問題項目,只要開啟行事曆並切換到 [類別] (Category) 檢視,即可用類似 Outlook 中的版面檢視行事曆。
若要進行此動作,請按一下 Outlook 的 [檢視] (View) 索引標籤,再按一下 [變更檢視] (Change View) 下拉式清單,然後選擇 [依類別] (By Category)。如此一來,行事曆就會顯示類似如下:
這種檢視會將行事曆中的所有項目排成清單,就像在 [收件匣] (Inbox) 中查看電子郵件一般。您可以用像是 [主旨] (Subject)、[位置] (Location)、[開始] (Start) 和 [結束] (End) 加以排序。在一般 [行事曆] (Calendar) 檢視中難以找到或無法找到問題項目時,可利用此在行事曆資料中找到問題項目。
“-F” 會在您的資料夾清單中建立 CalCheck 資料夾,並將標記為 [錯誤] 的項目移到該資料夾:
項目可以移回行事曆,假如不再需要也可從這裡刪除,或是如果可能的話加以修正再移回行事曆。一般來說,最標準的做法是重新建立項目,並刪除原先移出至 CalCheck 資料夾的項目。
“-R” 會在收件匣資料夾中建立附加有 CalCheck.log 檔案的電子郵件訊息。以伺服器模式執行工具時將十分有用,因為每位使用者都可在其 [收件匣] (Inbox) 中收到自己的報告:
“-No” 有兩種:“-No org” 和 “-No dup”:
“-No org” 會省略「會議出席者變成會議召集人」的檢查。此檢查的一部分會用到信箱的 legacyExchangeDN。假設 legacyExchangeDN 因為任何原因而有所變更 (比方說移轉),則此測試傳回的項目錯誤,有可能並非真的出錯。CalCheck 所記錄的錯誤會顯示兩個 DN。如下面範例:
12/21/2011 05:27:25PM ERROR: dispidApptStateFlags is 1, but the address for this mailbox does not match the organizer address.
12/21/2011 05:27:25PM Check to ensure the Organizer Address is correct, and whether or not this user should be the organizer.
12/21/2011 05:27:25PM Organizer Address: /o=Org1/ou=admin group 1/cn=recipients/cn=user1
12/21/2011 05:27:25PM DN for this user: /o=Org2/ou=admin group 2/cn=recipients/cn=user1
12/21/2011 05:27:25PM See KB 2563324 for additional information: https://support.microsoft.com/kb/2563324/zh-tw
12/21/2011 05:27:25PM Properties to help investigate this reported item: 12/21/2011 05:27:25PM Subject: Test
此處的信箱就是同一個實際的信箱,但因為 legacyExchangeDN 曾變更過,所以標記成錯誤。
“-No dup” 會省略偵測重複項目。因為這項測試會在記憶體內部建立一張項目清單,然後依據該清單測試每個項目。額外的處理與記憶體用量可能會稍微拖慢處理速度。
CalCheck 辦不到的事
- CalCheck 純粹只是一個報告工具。它不會自動修改或「修正」任何項目。如果有使用“-F” 參數的話,它會將偵測到的錯誤項目移到 CalCheck 資料夾,除此之外沒有任何項目會有任何變更。
- CalCheck 只適用於 Exchange 伺服器上的行事曆。不適用於其他伺服器,例如 IMAP 或 POP3 等等。
- CalCheck 無法找出所有行事曆項目可能發生的損壞。但它能找出許多可排除的已知問題,有效省下翻閱行事曆及/或連絡服務台的時間。
意見
請分享您的寶貴意見!最好的留言管道是 https://calcheck.codeplex.com/discussions (可能為英文網頁)
如果您有任何關於 CalCheck 的問題,可到 https://calcheck.codeplex.com/workitem/list/basic (可能為英文網頁) 張貼相關資訊
謝謝您,希望它有助您節省診斷與解決行事曆問題的時間!
Randy Topken
資深升級工程師
Outlook 小組
這是翻譯後的部落格文章。英文原文請參閱 CalCheck - The Outlook Calendar Checking Tool