在 Microsoft 技術社群的 Teams 論壇中,有個問題詢問是否可以清空頻道中的所有發文,以「重新開始」。在串流的後續中,提到頻道充斥著與 COVID-19 大流行和在家工作相關的舊訊息和評論,這些不需要的訊息位於「一般」頻道中,因此對所有團隊成員都是明顯的(除非他們使用隱藏「一般」頻道的選項)。
建議的解決方案是刪除該頻道。這是有效的,特別是由於微軟現在支援多達 1,000 個頻道的團隊。在某些情況下,這是正確的做法。在其他情況下,在新頻道中重新建立已刪除頻道中存在的所有頻道標籤可能會很痛苦。
無論如何,Teams 客戶端都不包括團隊擁有者從頻道中刪除所有主題和回覆的選項,所以問題是如何完成這項任務。部署 Microsoft 365 保留策略以在達到一定年齡後從頻道中刪除項目可能會起作用,但保留策略不一定會將頻道中的所有內容都刪除,除非保留期設置得非常短。此外,您必須等待保留處理完成並從頻道中刪除項目。
通常情況下,潛在的答案在於 PowerShell。具體來說,通過建立一個腳本,使用 Microsoft Graph PowerShell SDK 中與 Teams 數據交互的 cmdlet 來查找並刪除頻道訊息。
概述頻道清理解決方案
表面上看,使用 PowerShell 清理團隊頻道的步驟似乎並不太複雜。從 Teams 頻道中刪除項目與刪除 Teams 聊天訊息不同,刪除頻道訊息的文件指定應用程式權限不可用。ChannelMessage.ReadWrite 僅在委派權限下可用。其結果是,只有訊息作者或團隊擁有者可以從頻道中刪除訊息。這是前提是團隊設置允許擁有者刪除訊息。要刪除所有訊息,腳本必須由團隊擁有者運行。
即便如此,步驟看起來是直截了當的:
🟩使用必要的權限登錄到 Microsoft Graph PowerShell SDK :
ChannelMessage.ReadWrite:刪除訊息。
Team.ReadBasic.All:讀取團隊的詳細資訊。
TeamMember.Read.All:讀取團隊成員的詳細資訊(以檢查登錄的使用者是否為團隊擁有者)。
ChannelSettings.Read.All:檢查頻道設定以確保擁有者可以刪除訊息。
🟩請使用者指定目標團隊以及要從中刪除訊息的頻道。
🟩檢查權限以確保擁有者可以刪除訊息。
🟩使用 Get-MgTeamChannelMessage cmdlet擷取訊息(主題)。
🟩對於每個訊息,使用 Invoke-MgSoftTeamChannelMessageReplyDelete cmdlet 刪除其回覆。
🟩刪除回覆後,使用 Invoke-MgSoftTeamChannelMessageDelete cmdlet 刪除基本主題。
🟩持續處理,直到該頻道中的所有訊息都被清除為止。
對保留或 SharePoint 儲存空間沒有影響
值得強調的是,刪除頻道訊息和回覆不會影響對 Teams 頻道捕獲的合規記錄。Microsoft 365 底層系統捕獲這些訊息並在保留策略指定的保留期間內保留它們。即使腳本刪除了頻道訊息和回覆,合規記錄仍然可供 eDiscovery 使用。
同樣,從 Teams 頻道中刪除訊息不會刪除存儲在 SharePoint Online 中的項目,如附件或發送到頻道的電子郵件訊息。這些項目保持不受影響和完整。


Comments are closed, but trackbacks and pingbacks are open.