您目前已離線,請等候您的網際網路重新連線

如何使用 「 Exchange 行事曆更新工具的地址日光節約時間

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

941018
簡介
日光節約時間是預先設定時鐘,以便日出和日落發生在稍後小時系統。結果會是多個日光節約在傍晚。許多國家/地區觀察日光節約時間。大部分的這些國家有他們自己的規則及註冊來取得日光節約時間會開始及結束。

日光節約時間 (DST) 的日期可能會變更每年。Microsoft Outlook 使用者必須更新他們的 Outlook 行事曆的 DST 規則變更每一次。先前的 DST 規則與目前的 DST 規則之間的日期被所謂的本文中 「 DST 延伸時段。"

本文將告訴您可以採取位址行事曆的項目在 Outlook 中延伸 DST 期間發生的動作。本文也說明更新會儲存在 Microsoft Exchange Server 上,根據新的 DST 規則的行事曆項目,您應該採取的動作。本文提供此解決方案涉及 Microsoft Exchange 行事曆更新工具 (「 Exchange 工具 」)。

如需有關如何準備日光節約時間於 2007 (DST 2007) 中所有受影響的 Microsoft 產品的詳細資訊,請造訪下列 Microsoft 網站: 在 2011,俄羅斯政府會採用取消日光節約時間 (DST) 的法律。如需詳細資訊,請造訪下列 Microsoft 網站: 如需在俄羅斯的詳細資訊,請造訪下列 Microsoft 網站:
其他相關資訊

有關 Exchange 工具

Microsoft windows 安裝 DST 更新後,舊的 DST 變更期間發生的所有約會將無法正確都顯示為一個小時之後發生。這是週期性和單一執行個體的約會,則為 true。您必須更新這些約會,讓他們將會正確顯示在 Outlook 中、 在 Microsoft Office Outlook Web Access 中,而且以共同作業資料物件 (CDO) 為基礎的應用程式中。

Outlook 提供的 Microsoft Office Outlook (「 Outlook 工具 」) 稱為時區資料更新工具的工具。此工具可讓使用者更新自己的行事曆。

如需有關時區資料更新工具的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
931667 如何處理在 2007年日光節約時間變更,藉由 Microsoft Office Outlook 時區資料更新工具
Exchange 行事曆更新工具 (「 Exchange 工具 」) 可協助您避免問題的系統管理員面對廣泛的所有使用者部署 Outlook 工具,並確定每個使用者正常執行 Outlook 工具。

高階說明 Exchange 工具

Exchange 工具是由兩個不同的可執行檔所組成。下表說明這些檔案。
檔案名稱 描述
Msextmz.exe 這個可執行檔會從正在執行 Exchange Server 的伺服器上的信箱擷取時區資訊。這個可執行檔也會更新指定的使用者清單的信箱行事曆。
Msextmzcfg.exe 這個可執行檔是在更新 Exchange Server 伺服器執行的大部分步驟所牽涉的組態工具。

關於新版本的 Exchange 工具

根據客戶的意見反應,Exchange 工具的新版本已於 2007 年 8 月 13 日發行。這篇文章是指 Exchange 工具的新版本。如果您正在執行舊版的 Exchange 工具,解除安裝它,然後再安裝新的版本。

新版本的 Exchange 工具做了下列改進:
  • 時區擷取和行事曆以 fourfold 向上更新處理程序 aresped。
  • 「 組態 」 工具的使用者介面是 morestreamlined 而容易了解。
  • 組態工具現在是內建更新的會議室和 resourcemailboxes 的能力。
  • Theconfiguration 工具現在是內建更新使用者信箱的能力。
  • 疑難排解文件現在已經包含使用 theExchange 工具,並整合至 「 組態 」 工具。
  • 時區解壓縮演算法和錯誤 handlingcapabilities 已獲得改善。
  • 記錄處理程序是更好用。

執行 Exchange 工具的風險

當您執行 Exchange 工具時,會有風險的單一執行個體約會可能無法正確更新。例如,單一執行個體約會後已更新的作業系統所建立的使用者可能不正確地更新。

若要減少這個風險,請使用下列方法之一:
  • 該您 updateclient 電腦和您更新信箱行事曆的時間,請減少之間的時間間隔。
  • 如果組織中的電腦已更新長 timeago,使用 [進階的設定中的 [只更新週期性會議設定。

    一般而言,人員進行這項未 createsingle 執行個體約會數個月事先。因此,如果 DSTupdates 已安裝數個月前,大部分的單一執行個體 meetingsthat (秋天) 到擴充的 DST 期間將已建立使用 newDST 轉換規則。這些會議並沒有更新。
  • 如果您知道所有用戶端 computerswere 的更新時的確切日期,請在 [進階的設定]使用作業系統補充程式日期設定值。如果指定的日期,則 Exchangetool 會不會更新該日期之後所建立的單一 instanceappointments。
注意如果您正在執行 Windows Vista 中,用戶端電腦上執行 Outlook 工具或 Exchange] 工具,您對信箱了家用時區紐西蘭標準時間執行此工具,您必須執行這個工具第二次或 2008 年 1 月 1 日之後。如需詳細資訊,請參閱 「 已知的問題 」 一節。

若要更新信箱選項

下表列出您可以使用來更新使用者的信箱,以使用 DST 2007 時區規則的五個選項。
選項 專業人員 優缺點
分配給每個使用者的 [Outlook] 工具,然後指示使用者更新自己的信箱。 此選項可避免執行 Exchange 工具相關聯的風險。 很難保證所有的使用者將會執行 Outlook 工具正確且即時的方式。

沒有 Outlook 的使用者將無法執行 Outlook 工具。

您必須進行額外的教育工作,以降低對使用者的混淆。
針對所有受影響的使用者與伺服器執行 Exchange 的工具。 此選項為使用者提供有效率的經驗。 沒有相關聯執行 Exchange] 工具中,「 Exchange 工具的執行風險 」 一節所述的風險。
執行 Exchange 工具,以更新唯一的週期性約會。可讓使用者藉由使用 Outlook 工具更新自己的信箱中的單一執行個體約會。 沒有較少的單一執行個體約會更新錯誤的風險。 執行 Outlook 工具的缺點被配合執行 Exchange 工具的缺點。
執行 Exchange 工具都 Outlook 工具。要求使用者檢查他們的行事曆,並視需要重新預約約會。 此選項可避免執行 Exchange 工具相關聯的風險。 除非所有的使用者重新通訊錄的所有受影響的約會,一些行事曆項目為一小時關閉延伸 DST 期間。

您必須進行額外的教育工作,以降低對使用者的混淆。
分配給每個使用者的 [Outlook] 工具,然後指示使用者更新自己的信箱。然後,使用 Exchange 工具的時區擷取模式來判斷使用者所執行的 Outlook 工具。

如果使用者沒有執行 Outlook 工具,系統管理員可以執行 Exchange 的工具。
這個選項能夠減少使用者未及時,執行此工具的風險,這麼做可以避免執行 Exchange 工具相關聯的風險。 如果使用者正在執行 Microsoft Office Outlook 2007年,這是不選項。

如何安裝 Exchange 工具

Exchange 行事曆更新工具是可供下載自動解壓縮的可執行檔 (Msextmz.exe) 的表單中。這個工具是可以從 「 Microsoft 下載中心 」 下載:

下載立即下載 Exchange 行事曆更新工具套件。

虛擬機器可以協助您安裝並使用 [Exchange] 工具。虛擬機器為基礎 Microsoft Windows Server 2003,Outlook 2007,Microsoft Office Excel 2007 中,Microsoft Office Word 2007。在這兩種 Microsoft Virtual PC 2004 和 Microsoft Virtual Server 2005 R2 虛擬機器的運作方式。

如需有關虛擬機器的 Exchange 行事曆更新工具,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
933185 虛擬機器是可用來協助您部署 Exchange 組織中的日光節約時間 2007年行事曆更新
如需有關如何下載 Microsoft 支援檔案的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
119591 如何從線上服務取得 Microsoft 的支援檔案
Microsoft 會掃描這個檔案有無病毒。Microsoft 會使用張貼檔案當日可使用的最新病毒偵測軟體。檔案會儲存在加強保全的伺服器,以避免任何未經授權的更改。

Exchange 工具所支援的語言

Exchange 工具是僅提供英文版本。此工具將只有電腦上執行英文 (美國)。

與 Exchange 工具相容的版本的 Exchange Server

Exchange 工具可以更新下列版本的 Exchange Server 上的信箱:
  • Microsoft Exchange Server 2007年企業版
  • Microsoft Exchange Server 2007年標準版
  • Microsoft Exchange Server 2003年企業版
  • Microsoft Exchange Server 2003年標準版
  • Microsoft Exchange 2000 Server 企業版
  • Microsoft Exchange 2000 Server 標準版

Exchange 工具所支援的作業系統

Exchange 工具將在下列作業系統的 32 位元版本上執行:
  • Microsoft Windows Server 2003
  • Microsoft Windows XP
  • Windows Vista

執行 Exchange 工具 」 之前,該怎麼辦

安裝更新

執行 Exchange 工具之前,請確定已經正確地更新用戶端和伺服器電腦。若要執行這項操作,請在用戶端和伺服器上安裝 Windows DST 更新。 如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
942763 2007 年 12 月 Microsoft Windows 作業系統的累積時區更新

如果您正在執行 Microsoft Exchange Server 2003 Service Pack 2 (SP2),安裝一或兩個下列的更新,視您的組織:
  • 更新 911829
  • 更新 924334
如需有關這些更新的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
911829 當您嘗試執行任何編輯的工作,或您必須按一下以啟用 Outlook Web Access 的撰寫圖文框時,收到錯誤訊息
924334 撰寫郵件表單會停止回應在 Exchange Server 2003年中安裝 Internet Explorer 7.0 和 Outlook Web Access 用戶端上的 S/MIME 控制項之後
如果使用者在耶路薩冷、 中央巴西,或 e 南美國時區,請閱讀下列 「 Microsoft 知識庫 」 文件中的指引:

943390 某些 Outlook 行事曆項目是重定基底錯誤當您使用 Outlook 的時區資料更新工具來調整為特定時區的日光節約時間變更

確認系統需求

您必須執行 「 Exchange 工具只能在下列情況皆成立的電腦上:
  • 電腦有 Microsoft Office Outlook 2003年服務 Pack2 (SP2) 或 Microsoft Office Outlook 2007 安裝。
  • 電腦有 Outlook 時區資料 Toolinstalled。
  • Theclient 電腦上已安裝 Microsoft.NET Framework 2.0 版。
您無法在執行 Exchange Server 或 Exchange 系統管理工具的電腦上執行 Exchange 工具。如果您嘗試執行的 Exchange Server 或 Exchange 系統管理工具的電腦上安裝 Exchange 工具,您會收到下列錯誤訊息:
無法與 Microsoft Exchange 安裝 Microsoft Exchange 行事曆更新工具。

請確認權限和其他使用者的需求

請確認下列情況皆成立:
  • 管理資訊儲存庫會更新每個 ExchangeServer 郵件資料庫 (MDB) 上的權限。
  • 傳送 」 權限所有的信箱 areupdated。
  • 完整信箱存取的權限所有的信箱 areupdated。
  • 本機系統管理員權限授與在 computerthat 上是執行 Exchange 的工具。

關於 [授與信箱權限] 指令碼

您可以使用範例 GrantMailboxPermission.vbs 指令碼以網域使用者完整信箱存取 」 和 「 傳送 」 權限授與所有信箱。

此指令碼可以執行只能由 Exchange Server 管理員,在執行 Exchange 2000 伺服器或 Exchange Server 2003年的電腦上。此指令碼無法執行 Exchange Server 2007年的電腦上執行。不過,您可以使用 Exchange 管理命令介面來授與必要的權限。

中的 〈 參考 〉 一節提供.vbs 指令碼的程式碼。下表說明這個指令碼會執行兩種模式。
模式 命令 描述
新增 CScript GrantMailboxPermission.vbs – 新增 Domain_Name \ 使用者名稱 File_Name 這個命令會授與 Domain_Name \ 使用者名稱 使用者完整信箱存取 」 和 「 傳送 」 權限來列出輸入檔中的使用者信箱。

輸入的檔必須包含使用者信箱的舊版網域名稱的文字檔。這些名稱必須以歸位字元 + 行餵送 (CRLF) 分隔。

指令碼會產生 GrantMailboxPermission.log 檔。這個檔案是一筆記錄都已處理的信箱。記錄檔的第一行是 Domain_Name \ 使用者名稱 被授與存取的使用者。請勿刪除這個檔案。這個檔案用在移除模式下。

如果明確的 「 拒絕 」 存取指派給使用者時,指令碼就會記錄資訊在檔名為"GrantMailboxPermission.err"。指令碼不會授與或變更使用權限。

如果使用者屬於的弱點已被指派 「 拒絕存取 」 的安全性群組,指令碼會授與完整信箱存取 」 和 「 傳送 」 權限。不過,使用者將無法登入信箱。將 GrantMailboxPermission.err 檔案中記錄所有的錯誤。
移除 CScript GrantMailboxPermission.vbs – 移除此命令可移除的 GrantMailboxPermission.log 檔案中所列的信箱的完整信箱存取 」 和 「 傳送 」 權限 Domain_Name \ 使用者名稱 使用者。的 Domain_Name \ 使用者名稱 GrantMailboxPermission.log 檔案中指定使用者。
注意事項
  • 當您在 runningExchange 伺服器的電腦上執行此指令碼時,指令碼 scriptsuccessfully 處理使用者時,就會傳回句號字元 (.)。當指令碼不會成功地處理使用者時,指令碼會傳回驚嘆號 pointcharacter (!)。
  • 時區抽選模式的輸出檔無法為此指令碼輸入檔案的 beused。若要建立 thisscript 的輸入的檔,時區擷取模式輸出檔案 intoNotepad 的內容貼、 將內容儲存成新的文件,然後再使用新的文件與輸入檔。

如何使用 Exchange 工具

若要使用 Exchange 工具時,啟動 「 Exchange 行事曆更新組態工具 (Msextmzcfg.exe)。此程式將協助您進行更新的行事曆的整個程序。

執行時間區域擷取處理序

若要更新信箱行事曆,您必須決定的行事曆的時區。時區擷取程序會檢查屬性及信箱行事曆,以判斷其時區的約會。若要執行的時區擷取程序,請依照下列步驟執行:
  1. 在 [歡迎] 頁面上,按一下 [下一步]。

    注意歡迎使用] 頁面會向您介紹組態工具 anddiscusses,才能執行此工具的權限。網頁 alsoprovides 這篇文章的連結。
  2. 指定的組態工具的設定。您配置至少 200 mb 的磁碟空間 tologging 的 Werecommend。

    如果您想要變更預設的設定,按一下 [進階設定。如需有關 advancedsettings 的詳細資訊,請參閱遵循此程序的資料表。
  3. 選取您想要更新本機作用中的 Directorydirectory 服務樹系的 Exchange 伺服器。然後,按一下 [下一步]開始時間 」 區擷取程序。

    注意如果您已執行的時區擷取,您可以 skipthis 步驟,即可略過

    請注意顯示狀態列,輸出記錄檔,與階段 zoneextraction 程序的即時顯示的連結。時區擷取程序 iscomplete 之後, 按 [下一步]。

    如果發生錯誤,所以會顯示 alink 疑難排解文件。
  4. 設定信箱與否時區] 頁面上,,然後按一下 [下一步]來掃描 calendaritems。

    注意如果工具發現沒有信箱層級的 propertiesthat,表示其時區的使用者,工具會掃描實際會議和 appointmentsinside 那些行事曆,以判斷時區。您可以指定想要掃描的組態工具 numberof 行事曆項目。Thelarger 數的指定,掃描會花更長的項目。
  5. 解決未知的時區 displaynames ] 頁面上,工具會提示您將工具微處理器辨識的時區對應至已知的作業系統的時區。執行這項操作之後,按一下 [下一步
  6. 如果 「 組態 」 工具找到 multipletime 區域的使用者,會提示您以手動方式解決衝突,藉由指定要用來更新使用者的行事曆的單次區域。執行這項操作之後,按一下 [下一步]。
  7. 儲存信箱 DNs 無法解析的時區與頁面中,任何剩餘的使用者仍擁有沒有時間 zoneinformation 或使用者仍有衝突區域資訊的時間錄製 ina 不同的記錄檔。按一下 [下一步]
時區擷取程序已經完成。已解壓縮的時區和使用者的清單位於安裝目錄中的輸出檔 (Output.txt)。

進階的設定

下表說明您可以設定先前的程序的步驟 2 中的進階的設定。
設定功能案例考量適用性
更新僅週期性會議這項設定更新只會受到影響的週期性會議的 DST 變更。落在延長的 DST 時間的單一執行個體約會不會更新而不管它們是否應該更新。如果組織中的電腦的更新很久以前,請使用此設定。

一般而言,人不會建立單一執行個體約會數個月事先。因此,如果 DST 更新已安裝數個月前,大部分的分為延長的 DST 時間的單一執行個體會議將已建立使用新的 DST 轉換規則。這些會議並沒有更新。
如果使用者建立單一執行個體會議事先數個月,如果指定這個設定,將不會更新這個會議。這個設定會套用到所有的信箱、 所有的會議室和所有使用者的行事曆。
作業系統補充程式安裝日期此設定會指定建立或更新您所指定的日期之後的單一執行個體約會不會更新。如果您知道所有用戶端電腦的更新時的確切日期,請使用此設定。

當您執行這項操作時,不會更新已安裝更新後所建立的會議。這些會議底下的新時區規則。
這個設定只有當用戶端電腦已更新少於 24 小時內時,以及高入侵的更新時才會生效。(沒有高入侵時,百分比的組織中已更新的電腦是以高的 90%範圍)。

此外,系統管理員可以指定只有一個更新的日期。必須更新時區的時間對應至特定的更新和特定的時區集建立的會議。

會議室的含意是,只更新房間位於特定時區的會議。

使用者信箱的含意是如果沒有指定SuppressExchange設定或SuppressAll設定,則會更新屬於特定時區區域使用者信箱。
這個設定會套用到所有的信箱、 所有的會議室和所有使用者的行事曆。
SuppressExchangeMaxDepth這些設定會使受影響的使用者的行事曆中的所有約會的 DST 變更,無論使用者是召集人行事曆項目有所更新。

如果使用者是召集人行事曆項目,更新將不會傳送至出席者擁有 Exchange 信箱。更新傳送至出席者不需要 Exchange 信箱。

[ MaxDepth ] 設定指定的執行是為了要判斷哪一個出席者的通訊群組清單延伸層級擁有 Exchange 信箱和哪些出席者不。
如果您不想要接收來自受到延長的 DST 時間的會議的召集人的會議更新的 Exchange 使用者,請使用此設定。

如果組織具有非 Exchange Server 行事曆系統,而且會議排定於包含對組織外部的出席者, SuppressExchange設定會優於SuppressAll設定。
傳送會議更新,除非非 Exchange 使用者。因此,若要確定所有可能的出席者,會更新相同的會議複本,必須更新組織中的每個信箱。

這種情況可能會大幅增加必須更新的信箱數目。因此,您可能會增加處理時間。

大型、 巢狀通訊群組清單,則在 [出席者] 清單是昂貴的程序來決定會議的與會者,並判斷這些出席者是否有 Exchange 信箱。如果您指定這個設定,並設定MaxDepth參數的值越高,極大的負擔可能會讓網域控制站上。
這項設定只適用於使用者信箱。
SuppressAll此設定會導致受影響的使用者的行事曆中的所有約會的 DST 變更,無論使用者是召集人行事曆項目有所更新。

如果使用者是召集人行事曆項目,更新將不會傳送給出席者。
如果不想讓出席者接收來自受影響的延伸的 DST 期間的會議的召集人的會議更新,請使用此設定。傳送會議更新。因此,若要確定所有可能的出席者,會更新相同的會議複本,必須更新組織中的每個信箱。

這種情況可能會大幅增加必須更新的信箱數目。因此,您可能會增加處理時間。

出席者不需要 Exchange 信箱不會收到更新。不可能更新他們的約會,依據使用者所執行的電子郵件系統,並根據他們的系統管理員採取的動作。
這項設定只適用於使用者信箱。

更新的會議室和資源信箱

您必須更新的會議室和資源信箱,以避免發生預約衝突。若要執行這項操作,請依照下列步驟執行:
  1. 指定的資源和會議 RoomCalendars ] 頁面中,輸入或貼上的會議 roomsin 的別名清單您的組織。按一下 [解決驗證別名,然後按一下 [下一步]
  2. 解決資源 andConference 室行事曆的時間區域在頁面上,則工具會提示您要 manuallyspecify 一間會議室的時區如果會議室不 nothave 時區。做這樣的處理,然後按一下 [下一步]
  3. 提醒頁隨即出現,提醒您,即將更新行事曆 toolis。按一下 [下一步]
  4. 請注意會顯示 [狀態列]、 areal 時間顯示的工具的輸出與輸出記錄檔的連結。按一下 [下一步]。

    如果發生錯誤,thetroubleshooting 文件的連結會顯示在此頁面底部。

更新使用者信箱行事曆

若要執行這項操作,請依照下列步驟執行:
  1. 更新使用者 MailboxCalendars 的設定] 頁面中,設定更新。

    貴沒有指定SuppressExchangeSuppressAll進階設定,請選取時區的 DST 該 areaffected。否則,請選取所有的時區。

    按一下 [下一步]。
  2. 提醒頁隨即出現,提醒您,即將更新行事曆 toolis。按一下 [下一步]
  3. 請注意會顯示 [狀態列]、 areal 時間顯示的工具的輸出與輸出記錄檔的連結。之後更新 iscomplete 中,按一下 [下一步]。

    如果發生錯誤,alink 疑難排解文件會顯示在 thispage 的底部。
  4. 按一下 [完成]。

Exchange 工具記錄檔及子目錄

記錄檔

Exchange 工具會在安裝目錄中建立下列記錄檔:
  • Output.txt

    這個檔案包含一份所有的使用者信箱 thatwere,以及其時區資訊解壓縮。
  • TimeZoneExtraction.log

    這個記錄檔包含的所有伺服器的時間 zoneextraction 程序結合的輸出。
  • ResourceUpdate.log

    這個記錄檔包含的更新程序的會議室和資源信箱的輸出。
  • UserUpdate.log

    這個記錄檔包含的所有伺服器的 usermailbox 更新程序結合的輸出。
  • CalendarScan.log

    這個記錄檔包含的所有伺服器的 calendarscan 程序結合的輸出。
  • ConflictUsers.txt

    這個記錄檔包含具有 conflictingtime 區域的使用者清單。例如,使用者的信箱內容指出該 theybelong 與多個時區。
  • NonExistent.txt

    這個記錄檔包含任何時間 zoneinformation 的使用者的清單。

子目錄

Exchange 工具會在安裝目錄中建立下列子目錄:
  • 資源

    這是更新 processfor 工作子目錄會議室和資源信箱。這個 directorycontains 的下列檔案:
    • Msextmz.log

      這是更新程序 Exchange 工具的輸出檔。
    • Errors.txt

      這個檔案包含信箱的清單。
    • Processed.txt

      這個檔案包含已成功更新的信箱的清單。
    注意所有的工作子目錄包含這些檔案。

    TheResource 子目錄也會包含下列子目錄:
    • 記錄檔

      這個子目錄包含已成功更新每個信箱的更新記錄檔。每個更新記錄檔應該包含已更新的會議的清單。
  • Server_Name

    每個 serveron 的時區擷取處理一個子目錄或行事曆更新已經執行。這些子目錄包含下列子目錄:
    • CalendarScan

      這是為行事曆的掃描處理的工作子目錄。
    • 擷取

      這是時區擷取程序的 [工作] 子目錄。
    • 更新

      這是使用者信箱更新處理程序的 [工作] 子目錄。它包含下列子目錄:
      • 記錄檔

        這個子目錄包含已成功更新每個信箱的更新記錄檔。每個更新記錄檔應該包含已更新的會議的清單。

執行 Exchange 工具之後,該怎麼辦

在您完成對您環境中的所有 Exchange 伺服器執行 Exchange 工具之後,套用適當的 Exchange Server DST 更新。下列清單是由 Exchange Server 版本與服務套件層級組織的。安裝您的 Exchange Server 版本的更新順序。

Exchange Server 2007
940006 更新彙總套件 4 的 Exchange Server 2007年的描述
更新彙總套件 4,Exchange Server 2007 包含下列的 DST 修正程式:
  • 937656 在 2007年日光節約時間 (DST) 開始紐西蘭中之後,遇到問題的 Exchange 2007 的 Outlook Web Access
  • 932561 到另一個從 Exchange 組織傳送,使用 Exchange 2007 的約會可能不正確相差一小時一個組織是否位於西部澳大利亞時區
Exchange Server 2003 SP2
926666 Exchange 2003 Service Pack 2年的 2007 年的日光節約時間變更的更新
931915 更新紐芬蘭於 2007 年的日光節約時間變更 Exchange Server 2003 Service Pack 2
929895 由其中一個組織時以西歐澳大利亞時區為準的一小時,會在不同的 Exchange Server 組織之間傳送的約會可能會不正確
937653 在 2007年日光節約時間期間紐西蘭變更之後遇到 Exchange Server 2003年中的一或多個問題
Exchange Server 2003 SP1
940123 您遇到的問題,在 Exchange 2003 Service Pack 1 後日光節約時間 (DST) 2007年中啟動在紐西蘭

已知的問題

  • 在 Outlook Web Access 中建立的週期性會議不會更新 Exchange 工具

    如果您更新信箱,Outlook Web Access 中的 arecreated 週期性會議之前,在 theExchange 伺服器上安裝 Exchange Server 更新不會更新 Exchange 工具中。

    若要解決這個問題、 移除 Exchange Server 更新,執行 theExchange 工具,然後再重新安裝 Exchange Server 更新在 Exchangeserver 上。
  • 執行 Exchange 工具之後,必須重新啟動 Exchange 2007

    若要正確地顯示行事曆項目,您必須 restartthe Exchange 服務,執行 Outlook Web Access inExchange 2007 的 Exchange 工具之後。
  • 您無法安裝 Exchange 工具

    Exchange 工具未成功安裝 ifeither 的下列登錄機碼是否存在:
    • HKEY_CLASS_ROOT\Outlook.Application.9
    • HKEY_CLASS_ROOT\Outlook.Application.10
    在這個案例中,您會收到下列的錯誤如下您嘗試安裝 Exchange 工具:
    Exchange ServerCalendar 重定基底工具無法安裝此版本的 MicrosoftOutlook。
    若要解決這個問題,請刪除這些登錄機碼、 安裝 [Exchange] 工具,然後再還原 adm。

    重要這個章節、 方法或工作包含修改登錄的步驟。不過,如果您不當修改登錄,可能會發生嚴重的問題。因此,請務必小心執行這些步驟。為加強保護,請在修改前備份登錄。然後,您可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
    322756 如何備份及還原 Windows 中的登錄
  • 沒有可以處理每個伺服器的信箱數目限制

    在使用者清單模式及時區擷取 mode,Msextmz.exe 可以處理伺服器上只有 65535 的信箱。如果超過 65535 的信箱,某些信箱伺服器 hasmore 不會被處理。
  • 公用資料夾行事曆不會更新

    Exchange 工具不會更新公用的 Foldercalendars。如需有關如何更新公用資料夾行事曆、 seethe Outlook 工具的文件的資訊。
  • 您可以在相同的環境中執行 Outlook 工具和 Exchange 工具

    如果您執行 Exchange 工具在信箱上的 hasalready 已經更新 Outlook] 工具中,或反之亦然,您遇到不 sideeffects。不過,如果您執行 Exchange 工具時,沒有必要的使用者 torun Outlook 工具分開。
  • 稍後比預期顯示非會議備忘提醒

    信箱的非會議提醒更新 bythe 工具不會更新,如果 Outlook 已經永遠不會連線到 mailboxin 線上模式的交換。在此情況下,提醒會出現一個小時之後的 thanexpected。

    如果 Outlook 已經永遠不會連線在線上模式中,您 mustadjust 不正確的行事曆約會提醒,Outlook toolfinds。此外,[提醒] 搜尋資料夾不存在的信箱中。因此,此工具不會更新的電子郵件、 連絡人或其他提醒。

    例如,工具並不會更新一次在未來的電子郵件 itemto 待上提醒。這個工具也不會更新已提醒的工作項目上的 thereminder。
  • 您會收到錯誤訊息: 「 無法安裝,因為偵測到先前版本的 'Microsoft Exchange 行事曆更新工具'。請解除安裝它們,並再次執行這個安裝程式 」

    如果您先前安裝 Exchange 行事曆 UpdateTool 1.0 版,您必須在安裝 ExchangeCalendar 更新工具 2.0 版之前,先解除安裝此版本。

    Exchange 行事曆更新 Toolversion 1.0 散佈自我解壓縮的可執行檔檔案 (Msextmz.msi 和 Msextmzcfg.msi) 的 containedtwo.msi 封裝。您在安裝 Exchange 工具 2.0 版之前,您必須解除安裝 bothpackages。

    如果您在安裝 Exchange 工具 2.0 版時,youstill 會遇到問題,請嘗試重新安裝,然後解除安裝 Exchange 工具 1.0 版。在控制台中使用 [新增] 或 [RemovePrograms ] 功能透過.msi 套件,而不是 Dothis。然後,重新啟動電腦,然後安裝 Exchange 工具 2.0 版。

    如果此程序微處理器解決問題,請直接從.msi 封裝中擷取二進位碼檔案。
  • 當您執行的 Outlook 或 Exchange 的 「 更新 」 工具時,約會為關閉的一小時了家用時區紐西蘭標準時間的信箱

    發生這個問題,當下列情況下 aretrue:
    • 您正在執行 Windows Vista 的電腦上執行的 Outlook 或 Exchange 的 「 更新 」 工具。
    • 正在更新信箱家用時區是紐西蘭標準時間。
    若要解決這個問題,您必須執行 Outlook orExchange 更新工具針對信箱第二次或 January1,2008年之後。

    因為 Windows Vista 處理時間 zoneinformation 以不同的方式比其他版本的 Windows,就會發生這個問題。如果您不要執行 theOutlook 或 Exchange 更新工具一次或 2008 年 1 月 1 日之後,將會關閉相差一小時是在第二個事件中,DST 的 allappointments。第二個 DSTevent 2008 年 3 月 16 日 2008 年 4 月 6 日透過從包含日期。

    如果要等到 2008 年 1 月 1 日更新約會的第二個 DSTevent 的 notwant,您可以執行 Outlook,或者該 isrunning Windows XP 或 Windows Server 2003,Exchange 會更新從電腦的工具。
  • MM/DD/YYYY 格式的日期變更為 M/DD/YYYY 格式

    您在 Exchange 行事曆更新工具中設定作業系統補充程式日期] 選項。當您執行這項操作時,Exchange 行事曆更新工具運作不正常運作。日期格式 MM/DD/YYYY 變更為 M/DD/YYYY,就會發生這個問題。

    此外,錯誤記錄檔會記錄類似下列的錯誤訊息的錯誤訊息:
    [2008/28/02 上午 7:10:21][776]: wmain: 無法讀取組態-錯誤 0x80070057。
    之所以發生這個問題,是因為不正確的選項區段中設定下列的範例信箱。伺服器.ini 檔案。
    ServerDN = /O=OrgName/OU=AdminGroup/cn=Configuration/cn=Servers/cn=ServerName LogDirectory = C:\Program Files\MSExTmz\ServerName\Update\LogFiles\ ErrorFile = C:\Program Files\MSExTmz\ServerName\Update\errors.ServerName.txt ProcessedFile = C:\Program Files\MSExTmz\ServerName\Update\processed.ServerName.txt LogFile = C:\Program Files\MSExTmz\ServerName\Update\msextmz.ServerName.log SystemPatchDate = 2/28/2008  DebugFile = C:\Program Files\MSExTmz\debug\ServerName.debug.bin PerMailboxTimeLimit = 15 PostMailboxDelay = 0 RebaseOptions = 171 InputFile = C:\Program Files\MSExTmz\ServerName\Update\Mailboxes.ServerName.txt 
    請注意 「 SystemPatchDate 」 行包含日期"2/28/08。"DD/MM/YYYY 格式應該是這個日期。

    若要解決這個問題,請勿使用作業系統補充程式日期] 選項。
参考

[授與信箱權限] 指令碼

Option Explicit' For FileSystemObjectConst ForReading = 1Const ForWriting = 2Const ForAppending = 8Const TristateTrue = -1Const TristateUseDefault = -2Const TristateFalse = 0'Permission Type: Allow or DenyConst ADS_ACETYPE_ACCESS_ALLOWED = &H0Const ADS_ACETYPE_ACCESS_DENIED = &H1Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5Const ADS_ACETYPE_ACCESS_DENIED_OBJECT = &H6Const ADS_ACEFLAG_INHERIT_ACE = &H2Const ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE = &H4Const ADS_ACEFLAG_INHERIT_ONLY_ACE = &H8Const ADS_ACEFLAG_INHERITED_ACE = &H10Const ADS_ACEFLAG_VALID_INHERIT_FLAGS = &H1fConst ADS_ACEFLAG_SUCCESSFUL_ACCESS = &H40Const ADS_ACEFLAG_FAILED_ACCESS = &H80'Declare ADSI constantsConst ADS_SCOPE_SUBTREE = 2Const ADS_OPTION_SECURITY_MASK = 3Const ADS_OPTION_REFERRALS	= 1Const ADS_SECURITY_INFO_DACL = 4Const ADS_CHASE_REFERRALS_NEVER = &h00 Const ADS_CHASE_REFERRALS_SUBORDINATE = &h20 Const ADS_CHASE_REFERRALS_EXTERNAL = &h40'Microsoft Exchange ServerConst EX_MB_SEND_AS_ACCESSMASK  = &H00100Const EX_FULLMAILBOX_ACCESSMASK = 1Const EX_MB_SEND_AS_GUID = "{AB721A54-1E2F-11D0-9819-00AA0040529B}"'Application Parameter IndexConst ARG_INDEX_MODE = 0Const ARG_INDEX_USERNAME = 1Const ARG_INDEX_FILENAME = 2Const MIN_ARG = 1Const MODE_INVALID = -1 Const MODE_ADD = 0Const MODE_REMOVE = 1Const ADD = "-ADD"Const REMOVE = "-REMOVE"'Application Const StringConst EMPTYSTRING = ""Const ERROR_FILENAME = "GrantMailboxPermission.err"Const OUTPUT_FILENAME = "GrantMailboxPermission.log"Dim OUTPUT_DELIMITEROUTPUT_DELIMITER = vbTab'Logging fileDim objFSODim objfileErrorDim objfileOutputDim objfileImportDim objconnDim objCommandDim rootDSEDim sDomainContainerDim sUserLDAPPathDim objUserDim objSDNTsecurityDim objDACLNTDim objDACLEXDim objSDMailboxDim fFMADim fSendAsDim AccessTypeForFMADim AccessTypeForSendASDim fAddedFMADim fAddedSendAsDim fRemovedFMADim fRemovedSendAsDim sArraySplitDim sOneRowDim sGrantedUserDim dArgCountDim cScriptModeDim dArgExpectedDim fOneErrorOn Error Resume Next'Parameter VerificationdArgCount = Wscript.Arguments.CountIf (dArgCount < MIN_ARG) Then	DisplaySyntaxEnd IfcScriptMode = MODE_INVALIDSelect Case UCase(WScript.Arguments(ARG_INDEX_MODE))	Case ADD		cScriptMode = MODE_ADD		dArgExpected = ARG_INDEX_FILENAME + 1	Case REMOVE		cScriptMode = MODE_REMOVE		dArgExpected = ARG_INDEX_MODE + 1	Case Else		cScriptMode = MODE_INVALIDEnd SelectIf (cScriptMode = MODE_INVALID Or dArgCount <> dArgExpected) Then	DisplaySyntaxEnd IfIf (cScriptMode = MODE_ADD) Then	sGrantedUser = WScript.Arguments(ARG_INDEX_USERNAME)	If (IsValidUserName(sGrantedUser) = False) Then		DisplaySyntax	End IfEnd IfCreateImportExportFilesIf (cScriptMode = MODE_ADD) Then	err.Clear		'Prepare LDAP connection.	Set objconn = CreateObject("ADODB.Connection")	Set objCommand = CreateObject("ADODB.Command")	objconn.Provider = "ADSDSOObject"	objconn.Open "ADs Provider"	If (err.number <> 0) Then		WScript.StdOut.WriteLine("Failed to bind to Active Directory server, error:" & err.Description)		objfileError.WriteLine("Failed to bind to Active Directory server, error:" & err.Description)		WScript.Quit	End If			Set rootDSE = GetObject("LDAP://rootDSE")	sDomainContainer = rootDSE.Get("defaultNamingContext")	If (err.number <> 0) Then		WScript.StdOut.WriteLine("Failed to find a Domain Container:" & err.Description)		objfileError.WriteLine("Failed to find a Domain Container:" & err.Description)		WScript.Quit	End If			Set objCommand.ActiveConnection = objconn	Do While objfileImport.AtEndOfStream <> True		fOneError = False		sUserLDAPPath = EMPTYSTRING		err.Clear		sOneRow = Trim(objfileImport.ReadLine)		If sOneRow <> EMPTYSTRING Then				    sUserLDAPPath = GetLDAPPathFromLegacyDN(sOneRow)		    If (err.number <> 0) Then			    objfileError.WriteLine("Failed to get user's LDAP path from " & sOneRow)			    fOneError = True			    err.Clear		    End If		    If (fOneError = False) Then			    Set objUser = GetObject(sUserLDAPPath)			    If (err.number <> 0) Then				    objfileError.WriteLine("Failed to get user object from " & sUserLDAPPath)				    objfileError.WriteLine("Error: " & err.Description)				    fOneError = True				    err.Clear			    End If		    End If    			    If (fOneError = False) Then			    Set objSDMailBox = objUser.MailboxRights			    Set objDACLEX = objSDMailbox.DiscretionaryAcl			    Set objSDNTsecurity = objUser.ntSecurityDescriptor			    Set objDACLNT = objSDNTsecurity.DiscretionaryAcl			    If (err.number <> 0) Then				    objfileError.WriteLine("Failed to get DACL of " & sUserLDAPPath)				    objfileError.WriteLine("Error: " & err.Description)				    fOneError = True				    err.Clear			    End If		    End If		    ' Verify Full Mailbox Access and Send As permissions.		    fFMA = False		    fSendAs = False		    AccessTypeForFMA = ADS_ACETYPE_ACCESS_ALLOWED		    AccessTypeForSendAS = ADS_ACETYPE_ACCESS_ALLOWED		    If (fOneError = False) Then			    CheckFullMailboxAccess objDACLEX, sGrantedUser, fFMA, AccessTypeForFMA			    CheckSendAs objDACLNT, sGrantedUser, fSendAs, AccessTypeForSendAS			    If (err.number <> 0) Then				    objfileError.WriteLine("Failed to Check permission of " & sUserLDAPPath)				    objfileError.WriteLine("Error: " & err.Description)				    fOneError = True				    err.Clear			    End If		    End If		    'If Send As or Full Mailbox Access permissions do not exist, add these permissions.		    If ( (AccessTypeForFMA = ADS_ACETYPE_ACCESS_DENIED) Or (AccessTypeForSendAs = ADS_ACETYPE_ACCESS_DENIED_OBJECT) ) Then			    'If Deny access is already granted, do not add permissions for this user.			    objfileError.WriteLine("Deny permission already added: " & sUserLDAPPath)			    fOneError = True		    End If    				    If ( fOneError = False And ((fFMA = False) Or (fSendAs = False)) ) Then			    fAddedFMA = False			    fAddedSendAs = False    						    If (fFMA = False) Then				    'Add Full Mailbox Access permissions.				    err.Clear				    AddAce objDACLEX, sGrantedUser, EX_FULLMAILBOX_ACCESSMASK, ADS_ACETYPE_ACCESS_ALLOWED, ADS_ACEFLAG_INHERIT_ACE, 0,0,0				    objSDMailbox.DiscretionaryAcl = objDACLEX				    objUser.MailboxRights = Array(objSDMailbox)				    If ( err.number <> 0 ) Then					    objfileError.WriteLine("Failed to add FullMailbox Access: " & sUserLDAPPath)					    objfileError.WriteLine("Error: " & err.Description)					    fOneError = True					    fAddedFMA = False					    err.Clear				    Else					    fAddedFMA = True				    End If			    End If    						    If (fSendAs = False) Then				    'Add Send As permissions.				    err.Clear				    AddAce objDACLNT, sGrantedUser, EX_MB_SEND_AS_ACCESSMASK, ADS_ACETYPE_ACCESS_ALLOWED_OBJECT, 0,1, EX_MB_SEND_AS_GUID, 0				    objSDNTsecurity.DiscretionaryAcl = objDACLNT				    objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )				    objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL				    If ( err.number <> 0 ) Then					    objfileError.WriteLine("Failed to add SendAs permission: " & sUserLDAPPath)					    objfileError.WriteLine("Error: " & err.Description)					    fOneError = True					    fAddedSendAs = False					    err.Clear				    Else					    fAddedSendAs = True				    End If			    End If			    If (fOneError = False ) Then 				    objUser.SetInfo				    If (err.number <> 0) Then					    objfileError.WriteLine("Failed to update user: " & sUserLDAPPath)					    objfileError.WriteLine("Error: " & err.Description)					    fOneError = True					    err.Clear						    Else					    'Update logging.					    objfileOutput.WriteLine(sUserLDAPPath & OUTPUT_DELIMITER & fAddedFMA & OUTPUT_DELIMITER & fAddedSendAs)						    End If			    End If		    End If		    Set objUser = Nothing		    Set objSDNTsecurity = Nothing		    Set objDACLNT = Nothing		    Set objDACLEX = Nothing		    Set objSDMailBox = Nothing		    If (fOneError = True) Then			    WScript.StdOut.Write("!")		    Else			    WScript.StdOut.Write(".")		    End If        End If	LoopSet rootDSE = NothingSet objCommand = NothingSet objconn = NothingEnd IfIf (cScriptMode = MODE_REMOVE) Then	'Retrieve the granted user from the first line of the import file.	sGrantedUser = objfileImport.ReadLine	If (IsValidUserName(sGrantedUser) = False) Then		WScript.StdOut.WriteLine("Invalid User in import file. please check import file..")		objfileError.WriteLine("Invalid User in import file. please check import file..")		WScript.Quit	End If		Do While objfileImport.AtEndOfStream <> True		fOneError = False		sUserLDAPPath = EMPTYSTRING		fAddedFMA = False		fAddedSendAs = False		fRemovedFMA = False		fRemovedSendAs = False		err.Clear		sOneRow = objfileImport.ReadLine		sArraySplit = Split(sOneRow, OUTPUT_DELIMITER)		'The first column is the LDAP path.		sUserLDAPPath = sArraySplit(0)		'The second column is Full Mailbox Access permissions.		fAddedFMA = sArraySplit(1)		'The third column is Send As permissions.		fAddedSendAs = sArraySplit(2)		Set objUser = GetObject(sUserLDAPPath)		If (err.number <> 0) Then			objfileError.WriteLine("Failed to get user object from " & sUserLDAPPath)			objfileError.WriteLine("Error: " & err.Description)			fOneError = True			err.Clear		End If				If ((fOneError = False) And (fAddedFMA = "True")) Then					Set objSDMailBox = objUser.MailboxRights			Set objDACLEX = objSDMailbox.DiscretionaryAcl			fRemovedFMA = RemoveFullMailboxAccess(objDACLEX, sGrantedUser)			If (err.number <> 0) Then				objfileError.WriteLine("Failed to Remove Full MailboxAccess from " & sUserLDAPPath)				objfileError.WriteLine("Error: " & err.Description)				fOneError = True				err.Clear			End If						If (fRemovedFMA = False) Then				objfileError.WriteLine("Couldn't find Full mailbox access permission on " & sUserLDAPPath)			End If						If ((fOneError = False) And (fRemovedFMA = True)) Then				objSDMailbox.DiscretionaryAcl = objDACLEX				objUser.MailboxRights = Array(objSDMailbox)			End If		End If		If ((fOneError = False) And (fAddedSendAs = "True")) Then					Set objSDNTsecurity = objUser.ntSecurityDescriptor			Set objDACLNT = objSDNTsecurity.DiscretionaryAcl			fRemovedSendAs = RemoveSendAs(objDACLNT, sGrantedUser)			If (err.number <> 0) Then				objfileError.WriteLine("Failed to Remove SendAs from " & sUserLDAPPath)				objfileError.WriteLine("Error: " & err.Description)				fOneError = True				err.Clear			End If			If (fRemovedSendAs = False) Then				objfileError.WriteLine("Couldn't find SendAs permission on " & sUserLDAPPath)			End If						If ((fOneError = False) And (fRemovedSendAs = True)) Then				objSDNTsecurity.DiscretionaryAcl = objDACLNT				objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )				objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL			End If		End If		If ((fOneError = False) And (fRemovedFMA Or fRemovedSendAs)) Then			objUser.SetInfo			If (err.number <> 0) Then				objfileError.WriteLine("Failed to update ADSI for user: " & sUserLDAPPath)				objfileError.WriteLine("Error: " & err.Description)				fOneError = True				err.Clear					Else 				If ( fRemovedFMA Or fRemovedSendAs ) Then					'Update logging.					objfileError.WriteLine("Removed Permission from " & sUserLDAPPath & OUTPUT_DELIMITER & fRemovedFMA & OUTPUT_DELIMITER & fRemovedSendAs)				End If			End If		End If		If (fOneError = True) Then			WScript.StdOut.Write("!")		Else			WScript.StdOut.Write(".")		End If	LoopEnd IfCloseImportexportFilesFunction IsValidUserName (sUserName)	Dim dPosition	dPosition = InStr(1, sUserName, "\")	If (dPosition = 0 ) Then		IsValidUserName = False		objfileError.WriteLine("Invalid User:" & sUserName)	Else		IsValidUserName = True	End IfEnd FunctionFunction CheckSendAs (objNTSD, sUser, fSendAs, AccessType)	Dim intACECount	Dim objACE		err.Clear	fSendAs = False	AccessType = ADS_ACETYPE_ACCESS_ALLOWED	intACECount = objNTSD.AceCount	If intACECount Then		For Each objACE In objNTSD			err.Clear			If ( (UCase(objACE.Trustee) = UCase(sUser)) And (objACE.ObjectType = EX_MB_SEND_AS_GUID) ) Then				fSendAs = True				AccessType = objACE.AceType			End If		Next	End If		If (err.number <> 0) Then		objfileError.WriteLine("Check SendAs permissions Failed : " & sUser)		objfileError.WriteLine("Error: " & err.Description)		err.Clear		fOneError = True	End If	Set objACE = NothingEnd FunctionFunction CheckFullMailboxAccess (objACL, sUser, fFoundFMA, AccessType)	Dim intACECount	Dim objACE	err.Clear	fFoundFMA = False	AccessType = ADS_ACETYPE_ACCESS_ALLOWED	intACECount = objACL.AceCount	If intACECount Then		For Each objACE In objACL			If ( (UCase(objACE.Trustee) = UCase(sUser)) And ((objACE.AccessMask And EX_FULLMAILBOX_ACCESSMASK) <> 0)) Then				fFoundFMA = True				AccessType = objACE.AceType			End If		Next	End If	If (err.number <> 0) Then		objfileError.WriteLine("Check FullMailbox permissions Failed : " & sUser)		objfileError.WriteLine("Error: " & err.Description)		err.Clear		fOneError = True	End If	Set ObjACE = NothingEnd FunctionFunction RemoveSendAs (objNTSD, sUser)	Dim intACECount	Dim objACE	Dim fFound		fFound = False	intACECount = objNTSD.AceCount		If intACECount Then		For Each objACE In objNTSD			If ((UCase(objACE.Trustee) = UCase(sUser)) And (objACE.ObjectType = EX_MB_SEND_AS_GUID) ) Then				objNTSD.RemoveAce objACE				fFound = True			End If		Next	End If	RemoveSendAs = fFound		End FunctionFunction RemoveFullMailboxAccess (objACL, sUser)	Dim intACECount	Dim objACE	Dim fFound		fFound = False	intACECount = objACL.AceCount		If intACECount Then		For Each objACE In objACL			If((0 <> Instr(UCase(objACE.Trustee), UCase(sUser))) And (objACE.AccessMask And EX_FULLMAILBOX_ACCESSMASK) <> 0) Then				objACE.AccessMask = (objACE.AccessMask Xor EX_FULLMAILBOX_ACCESSMASK)				fFound = True			End If		Next	End If	RemoveFullMailboxAccess = fFound		End FunctionFunction GetLDAPPathFromLegacyDN (sLegacyDN)	Dim rsUsers	Dim sLdapPath		objCommand.CommandText = "<GC://" & sDomainContainer & ">;(&(&(& (mailnickname=*) (| (&(objectCategory=person)(objectClass=user)(legacyExchangeDN=" & sLegacyDN & ")) ))));adspath;subtree"	objCommand.Properties("searchscope") = ADS_SCOPE_SUBTREE	objCommand.Properties("Page Size") = 10	objCommand.Properties("Timeout") = 30 	objCommand.Properties("Chase referrals") = (ADS_CHASE_REFERRALS_SUBORDINATE Or ADS_CHASE_REFERRALS_EXTERNAL)	err.Clear		Set rsUsers = objCommand.Execute	If (err.number <> 0) Then		objfileError.WriteLine("Search for mailbox owners failed, error:" & err.Description)		fOneError = True	End If		If (rsUsers.RecordCount = 0) Then		objfileError.WriteLine("No mailbox owner user accounts found for " & sLegacyDN & " in " & sDomainContainer & ".")		fOneError = True			End If	If (rsUsers.RecordCount > 1) Then		objfileError.WriteLine("Multiple mailboxs owner user accounts found for " & sLegacyDN & " in " & sDomainContainer & ".")		fOneError = True			End If	sLdapPath = Replace(rsUsers.Fields(0).Value, "GC://", "LDAP://")		GetLDAPPathFromLegacyDN = sLdapPath	Set rsUsers = NothingEnd FunctionFunction CloseImportexportFiles	objfileError.WriteLine("*******************************************************")	objfileError.WriteLine("End at " & Date & " " & Time)	objfileError.WriteLine("*******************************************************")	objFSO.Close	objfileError.Close	objfileOutput.Close	objfileImport.Close		Set objFSO = Nothing	Set objfileError = Nothing	Set objfileOutput = Nothing	Set objfileImport = NothingEnd FunctionFunction CreateImportExportFiles	Dim sErrorsFileName	Dim sImportFileName	Dim sOutputFileName	err.Clear	Set objFSO = CreateObject("Scripting.FileSystemObject")	sErrorsFileName = ERROR_FILENAME	sImportFileName = EMPTYSTRING	sOutputFileName = EMPTYSTRING	Select Case cScriptMode		Case MODE_ADD			sImportFileName = WScript.Arguments(ARG_INDEX_FILENAME)			sOutputFileName = OUTPUT_FILENAME		Case MODE_REMOVE			sImportFileName = OUTPUT_FILENAME 'Use the output file name as the import file.			sOutputFileName = EMPTYSTRING			Case Else			DisplaySyntax	End Select	Set objfileError = objFSO.OpenTextFile(sErrorsFileName, ForAppending, True, TristateTrue)	objfileError.WriteLine("*******************************************************")	objfileError.WriteLine("Start at " & Date & " " & Time)	objfileError.WriteLine("*******************************************************")	If (cScriptMode = MODE_REMOVE) Then		Set objfileImport = objFSO.OpenTextFile(sImportFileName, ForReading, False, TristateTrue)	Else		Set objfileImport = objFSO.OpenTextFile(sImportFileName, ForReading, False, TristateFalse)	End If	If (sOutputFileName <> EMPTYSTRING) Then		'Determine whether the output file already exists.		If (objFSO.FileExists(sOutputFileName)) Then			Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForReading, False, TristateTrue)			sOneRow = objfileOutput.ReadLine			'If the user name in the file differs from the parameter, the process cannot continue.			If ( sOneRow <> sGrantedUser ) Then				WScript.StdOut.WriteLine("The Domain\User must be the same as " & sOneRow )				WScript.Quit			End If			Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForAppending, True, TristateTrue)		Else			Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForWriting, True, TristateTrue)			'The first line of the log file is the user who is granted the permissions.			objfileOutput.WriteLine(sGrantedUser)		End If	End If		If (err.number <> 0) Then		WScript.StdOut.WriteLine("Failed to open Log file, error:" & err.Description)		WScript.Quit	End IfEnd FunctionFunction AddAce(dacl, TrusteeName, gAccessMask, gAceType, gAceFlags, gFlags, gObjectType, gInheritedObjectType)	Dim Ace1		Set Ace1 = CreateObject("AccessControlEntry")	Ace1.AccessMask = gAccessMask	Ace1.AceType = gAceType	Ace1.AceFlags = gAceFlags	Ace1.Flags = gFlags	Ace1.Trustee = TrusteeName	'Determine whether ObjectType has to be set.	If CStr(gObjectType) <> "0" Then		Ace1.ObjectType = gObjectType	End If	'Determine whether InheritedObjectType has to be set.	If CStr(gInheritedObjectType) <> "0" Then		Ace1.InheritedObjectType = gInheritedObjectType	End If	dacl.AddAce Ace1    Set Ace1 = NothingEnd FunctionFunction DisplaySyntax	WScript.StdOut.WriteLine("Syntax:")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("Grant Full mailbox access and SendAs permission to USER based on IMPORT_FILE:")	WScript.StdOut.WriteLine("    CSCRIPT " & WScript.ScriptName & " -Add DOMAIN\USER IMPORT_FILE")	WScript.StdOut.WriteLine("    NOTE: """ & OUTPUT_FILENAME & """ will be created for -Remove option ")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("Remove Full mailbox access and SendAs permission based on " & OUTPUT_FILENAME & ":")	WScript.StdOut.WriteLine("    CSCRIPT """ & WScript.ScriptName & """ -Remove ")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("For all modes, errors are saved to " & ERROR_FILENAME )	WScript.Quit	End Function

警告:本文已自動翻譯

內容

文章識別碼:941018 - 最後檢閱時間:12/23/2014 01:11:00 - 修訂: 2.0

  • Microsoft Exchange Server 2007 Enterprise Edition
  • Microsoft Exchange Server 2007 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange 2000 Server Standard Edition
  • kbhowto kbinfo kbmt KB941018 KbMtzh
意見反應