聲明:報表原始碼來自英國 Exchange MVP - Steve Goodman 所撰寫的 Generate Exchange Environment Reports using Powershell,非常感謝他公開於個人部落格及 TechNet Script Center,提供給所有 IT 人員使用。
原始版:Generate Exchange Environment Reports using Powershell ( 原版範例頁面 )
中文化版:按此下載 ( 解壓密碼: www.askasu.idv.tw )( 2018.03.30 更新 )
MD5 檢查碼:c1e9131046c3440ae9a8caed893d29fb
中文化版範例頁面:
Exchange 2007, Exchange 2010
Exchange 2013, Exchange 2016
原作者提供指令使用方式:
1. 直接產生 HTML 報表
.\Get-ExchangeEnvironmentReport -HTMLReport 完整名稱或路徑含完整名稱.html
2. 產生報表且用郵件寄送
.\Get-ExchangeEnvironmentReport -HTMLReport 完整名稱或路徑含完整名稱.html -SendMail:$true -MailFrom:寄件者郵件地址 -MailTo:收件者郵件地址 -MailServer:smtp.example.com
中文化版說明:
1. 修改版面配置,如欄位及資訊置中、微軟正黑體字型優先、大小等
2. 於 Header 及 footer 位置增加作者連結及版本宣告
3. 對調運作伺服器與資料庫的欄位
因觀察此部份的原始顯示,應該是以資料庫的角度呈現。尤其在 DAG 架構下,若信箱資料庫都搬到同一台 MBX 主機上運作,則不會有出現顯示另一台 MBX 伺服器資訊,詳情可參考下圖原版及中文化版本比較。
4. 修改部分無法讀取到值的資訊欄位以中文顯示為「未知」
5. Server 2012 R2 因無 Service Pack 強制以中文顯示為「無」
6. 修改未設定循環記錄以中文顯示為「未啟用」
[2016.06.09] 增加
7. 強制 HTML 及設定郵件寄送編碼方式為 UTF8,並針對 Server 2008 的執行狀況設編碼變數以符合舊版 PowerShell 環境執行
[2018.03.30] 修改
8. 感謝 Lanworld 網友回報 因中文化過程,誤刪除到 754 行其中一個括號,導致標題位置錯誤,已修正問題
以下說明為 Lab 測試過程,發現原程式碼執行後的錯誤狀況所作的修改:
1. 修復 CAS Arrary 名稱無法顯示問題
起因於 Exchange 2010 Lab 測試時,發現 CAS Arrary 名稱沒有顯示。經檢查程式碼,應該是在讀取 CAS Array 名稱時,較晚讀取到 Exchange Server 恰巧是 MBX 角色,其 CAS Array 資訊為空值,後讀取的空值資訊蓋掉先前的有值資訊,造成無法正確顯示 (可參考原版及中文化版範例頁面比較 )。感謝集英信誠系統開發團隊的 Mike 提供判斷式修改建議。
2. 修復在特定狀況,如 Exchange 2007 版本不執行顯示內部域名及外部域名,或 Exchange 2010 之後版本若無設定外部域名,進而造成讀取到的資訊為空值,程式碼執行過程會產生錯誤訊息。
3. 修正及標準化 Server 2008 作業系統的名稱顯示,詳情可參考上圖。
4. 修復 Exchange 2010 之後的版本,無法在純 PowerShell 模式直接執行程式碼的問題。
5. 修復其在 Exchange 2016 未指定欲讀取的產品版本機碼而產生的錯誤,訊息可參考上圖提到的 364 行。
注意事項:
1. 請修改 Powerhell 預設限制,避免無法執行。詳情可參考先前的 AD 運作狀態檢查及郵件寄送一文。
2. Exchange 2007 的範例與原版執行結果相同,真的沒有資料庫資訊,所以不要問我那 A 安勒?
後記(其實就是碎念啦 ):去年在嘗試中文化 Active Directory Health Check 時,其實大約同一時間也做了這支 Exchange 系統報表的中文化,本想跟著 Active Directory Health Check 修改版的文章於前陣子一同發佈,但查看原版發佈點才發現,版本已經從當時的 1.5.8 更新至 1.6.1,想想還是找時間重新對較新的版本做中文化。
本來以為有舊版的中文化,再對新版做中文化應該很快...沒想到,因為不小心栽進去想寫自己要的進階版,仔細測才發現作者撰寫的程式,其實是有一些狀況的(在此也感謝某社工程師及幾位好友願意協助做前期小白鼠測試)。但我認為這不能怪原作者,畢竟這個 PowerShell 跨了多個 Exchange 產品版本,而且各個版本又可做不同架構。由於我也不喜歡在執行時看到錯誤訊息 ,所以決定盡可能在中文化及進階版本中修好,也導致整個中文化的時間比預期久。
如未來發現中文化版執行錯誤,或擷取的資訊不正確,建議先嘗試用原版測試。測試後,原版也發生同樣狀況,則應該是原程式碼就有問題,建議反映給原作者;但也歡迎讓我知道 ( Exchange 2007 以前的版本就真的不用了 ),我會嘗試進行修改,但因不一定有時間及建置相同 Exchange 架構環境,請恕不保證能做好做滿。
請問有沒有方法放到Schedule Task上執行?我在網上找到一些資料,但作者也不認為可以在Schedule Task上執行。
http://24x7itconnection.com/2015/10/22/it-snippits-schedule-exchange-2013-powershell-script-with-task-scheduler/
謝謝。
謝謝您的回應,
我會盡快測試這部分,
因為我也很想確認
目前是在 Server 2008 R2 加 Exchange 2010 的環境下測試排程成功,
參考下面的指令碼,填入到工作排程的「程式碼或指令碼」欄位
另外,如果 -HTMLReport 的參數沒有提供路徑,
則建議在設定排程時的「開始位置」,輸入欲存放的目錄路徑,
避免執行指令所產生的檔案都被丟入 C:\Windows\System32
理論上,Server 2012/2012 R2 應該也適用,
但我還是會找時間進一步確認
回報
環境windows server 2012 R2+Exchange 2013
工作排程建立基本工作->無論登入是否都執行[選取]->最高權限執行[選取]
動作->啟動程式
程式或指令碼 :powershell
新增引數:
-command "D:\Get-ExchangeEnvironmentReport.ps1" -HTMLReport 完整名稱或路徑含完整名稱.html -SendMail:$true -MailFrom:寄件者郵件地址 -MailTo:收件者郵件地址 -MailServer:smtp.example.com
排程工作可正常執行!
您好~
不知是否可請教您其他問題
我的jpg檔案打開會顯示下述錯誤(相片檢視器):
windows相片檢視器無法開啟此圖片,因為檔案似乎已損壞、已損毀或太大
神奇的是
只有AI 與 PS 存 CMYK的JPG會有這樣的問題
如果存RGB 的JPG則可以打開
有問題的JPG檔案 可用其他軟體顯示
例如 : 小畫家 或 AI 與 PS 本身 放進 WORD 也可以顯示
傳給其他人 則不會有上述的問題 ( 可正常用相片檢視器開啟 )
對於所發生的問題覺得很詭異
PS 一開始以為相片檢視器有問題 但他可以開啟其他圖片...
如有解決的方法
非常謝謝~
手邊沒有相同的應用軟體及檔案可以測試,
但在網路上有找到類似討論,
希望能對您有幫助
CMYK JPEG Thumbnails Preview in Negative Colours – PROBLEM SOLVED
Windows 7 shows CMYK images as negative
另外,如果有 Windows 使用問題,
推薦您到 Microsoft Community 論壇尋求協助
Exchange 2013 的CU 已經更新到CU23,
第952行要改
for ($i = 1; $i -le 20; $i++) <---- 20要改23
不然Exchange 版本會無法顯示變成空值。
謝謝您的回覆,如果有空我會重新檢視目前的程式碼,
或者放上 Github