CollectAllLogs的目的是快速、輕鬆地從單一裝置或裝置集合收集非常廣泛的日誌清單、登錄設定以及各種其他診斷資料。 CollectAllLogs腳本旨在使用 Microsoft 終端設定管理器 (MECM/SCCM/ConfigMgr) 的執行腳本功能推送到客戶端。 CollectAllLogs也適用於透過雲端管理閘道 (CMG) 遠端連線的用戶端(僅使用 PKI。尚不支援增強型 HTTP,因為用戶端將收集但不會上傳)。使用執行腳本功能將CollectAllLogs腳本推送到客戶端後,客戶端將收集、壓縮壓縮 ZIP 檔案(使用 BITS)並將其上傳到客戶端目前指派的管理點。最後,將發送一條狀態訊息,該訊息觸發網站伺服器上的狀態過濾器規則,將壓縮的 ZIP 檔案從管理點移至可設定的本機路徑或選擇的 UNC 共用。
注意:此腳本尚未在層次結構(使用 CAS)中進行徹底測試。如果您有 CAS,則需要編輯 MoveLogToPrimary.ps1 的第 73 行以反映您想要儲存日誌的位置。如果您在層次結構中測試解決方案,請提供回饋。
目前可以收集的日誌、註冊表設定和診斷資料如下:
MECM | Windows更新 | 基礎作業系統 | 主資料管理 | Office365 | 第三方 |
---|---|---|---|---|---|
MECM 用戶端日誌 | Windows 更新代理程式版本、安裝來源、安裝記錄、註冊表和 GPO 設定 | Windows 設定 | MDM 診斷工具(配置、註冊、自動駕駛儀)輸出 | OneDrive 日誌 | 賽門鐵克防毒排除項 |
MECM 用戶端註冊表項 | 邊緣更新 | PNP 設備和驅動程式 | MDM 事件日誌 | ||
行動客戶端.TCF | 哥倫比亞廣播公司日誌 | 過濾器驅動程式 | AAD 設備配置 | ||
CCMStore.SDF | 事件日誌(系統/應用程式/Bitlocker) | Intune 策略、註冊狀態和管理擴充日誌 | |||
運作流程和服務 | |||||
語言包 | |||||
交付優化 | |||||
Windows 服務和安裝診斷日誌 | |||||
DISM日誌 | |||||
瓦斯 | |||||
Registry.POL 損壞1 | |||||
Windows Defender 日誌、首選項和診斷資料2 | |||||
磁碟/磁碟區資訊 | |||||
Windows 安裝程式註冊表值 | |||||
BCD店 | |||||
1 REGISTRY.POL 損壞已知會導致 GPO 和軟體更新無限期失敗,直到解決為止。 Registry.POL 損壞通常是由防毒排除(而不是排除它)引起的。
2有關更多詳細信息,請參閱收集 Microsoft Defender AV 診斷數據。
首先,先檢查CollectAllLogs .ps1 中的第 24-37 行,以確定是否有不需要的日誌。如果有,請將它們設為“否”,這樣就不會發生收集。否則,預設情況下,除 Symantec Antivirus 排除項外,所有內容均為「是」。
將檔案Microsoft.ConfigurationManagement.Messaging.dll從 < ConfigMgr 安裝目錄AdminConsolebin 複製到每個管理點上的 < ConfigMgr 安裝目錄>CCMIncomingMessagingDll。每個 MP 上應該已經存在 CCMIncoming,但需要建立 MessagingDll 目錄。
在軟體庫中,使用腳本CollectAllLogs .ps1的內容建立一個新的運行腳本並批准它。如果您無法批准自己的腳本,「層次結構設定」中有一個複選框可供您批准。更改此配置應該是一個商業決策。作為最佳實踐,只有當您是經過驗證的完美主義者或您擁有真正的實驗室時,才批准您自己的腳本。
將MoveLogtoPrimary.ps1腳本放入主網站伺服器中所選的目錄中 - 以後稱為 < ScriptsDir >。
建立日誌目錄 - 以後稱為 < CollectAllLogs Dir >。 < CollectAllLogs Dir > 可以是網站伺服器上的本機路徑,也可以是遠端伺服器上的 UNC 路徑。唯一的要求是網站伺服器的電腦帳戶必須具有此目標共享的建立權限。
在 ConfigMgr 管理控制台中,前往“管理”、“站點”,選擇站點,然後按一下“狀態過濾器規則”和“建立”。
在「常規」標籤上,建立訊息 ID 為1234 的狀態過濾規則。
在「操作」標籤上,勾選「運行程式」方塊。
在「程式」空白處輸入下列命令列,然後按一下「確定」 。
C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -ExecutionPolicy 繞過 -File "< ScriptsDir >MoveLogtoPrimary.ps1" -InsString1 %msgis01 -InsString2 %msgis02 -LogFolder < CollectAllLogs Dir>
右鍵點選 MECM 控制台中的單一裝置或裝置集合。在軟體庫中,按一下執行腳本。
選擇在步驟 2 中建立的收集所有日誌腳本,然後按一下下一步兩次。
大約 5 分鐘後,監視用於 < CollectAllLogs Dir > 的路徑,查找 .zip 文件,其中包含所有請求的文件、事件日誌、註冊表導出和系統信息,該文件將命名為 < ComputerNameMM-DD-YYYYHHMMS>. zip 。在我的實驗室中,這些 zip 檔案的大小從 12MB 到 60MB 不等,具體取決於收集的資料、日誌歷史保留設定和事件日誌設定。建議在較小的集合(<10 個客戶端)上進行測試,以確定最終用戶和網路監管者會注意到什麼影響(如果有)。
如果您對收集日誌或其他診斷資訊有任何其他想法,請隨時為這個出色的實用程式做出貢獻。
CollectAllLogs腳本由 Microsoft 客戶工程師 Russ Rimmerman 和 David Anderson 開發。如果沒有才華橫溢、無所畏懼的MECM 大師 David Anderson(PFE/CE)提供的原創想法和功能齊全的啟動腳本, CollectAllLogs就不會存在。 David 對 Powershell 腳本的掌握促進了該實用程式的完整管道和初步基礎。
MPDetection*.log 顯示產品、引擎、服務和定義版本更新和更新時間。 MSSupportFiles.cab 包含大量用於分析 Windows Defender 運行狀況和活動的深入檔案。