查詢Microsoft Teams群組中儲存檔案的容量

首先感謝微軟技術團隊提供支援,協同解決

當大家開始習慣使用Microsoft Teams時候,就會開始把習慣透過群組方式分享檔案給團隊成員, Office 365雖然有提供每個帳號1TB的Onedrive空間,但是,對於公用的空間卻是有限制的,其計算方式1TB+Account個數x0.5G,換句話說如果公司人數1000人,共用的空間大小則是1.5G。而這1.5G會被SharePoint和Microsoft Teams所儲存的檔案大小給瓜分。所以,感覺很多,但其實也不太夠用。

此外,Microsoft Teams是一個很獨特的工具,因為前端看見是Teams,但其實背後隱藏技術卻是被架構在SharePoint、Skype for Buinsess…等Office 365內的服務之上,所以,Microsoft Teams的檔案管理背後其實是被SharePoint管理,所以,當我們建立一個新的群組,等於是在Office 365上面建立一個SharePoint Web Site,只是在SharePoint Admin管理介面中看不到這些群組

這時候,就必須Teams的管理上真的還不夠人性化,在SharePoint Admin看不到,且在Office 365後台也沒有相關資訊,對於管理者來說真的不夠方便,不過,目前最差狀況就是還可以透過PowerShell管理,至少是還是有解決方式

安裝SharePoint Powershell模組


既然要透過PowerShell管理,就必須先安裝相關管理模組,才能與Office 365連線溝通,首先必須下載SharePoint Online 管理命令介面,下載套件網址
https://www.microsoft.com/zh-tw/download/details.aspx?id=35588

查詢Teams空間使用狀況


這邊使用的PowerShell語法,基本上就是管理Office 365用的語法,如前面所說,Teams群組其實背後是SharePoint,所以,語法上等同於查詢SharePoint使用檔案空間狀況,下面逐步撰寫相關查詢語法

  1. 建立Office 365連線,執行後會跳出帳號密碼輸入框,輸入密碼即可
    1
    2
    3
    4
    5
    #Format :XXXXXX@BBB.onmicrosoft.com"
    $AdminName ="Office 365管理者帳號"
    $O365Connection = Get-Credential -UserName $AdminName -Message "Enter Office 365 Admin Credentials"
    $O365Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $O365Connection -Authentication Basic -AllowRedirection
    Import-PSSession $o365Session

2.連線到SharePoint Admin Portal

1
2
3
$SPAdminUrl ="https://BBB-admin.sharepoint.com/"
Connect-SPOService -Url $SPAdminUrl -Credential $O365Connection
$TeamsGroups = Get-UnifiedGroup -ResultSize Unlimited

Get-UnifiedGroup主要是列出所有群組列表,可以再放其他參數了解該群組的細節

3.列出群組使用的檔案大小

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$TeamsResult=@()
ForEach ($TeamsGroups in $TeamsGroups)
{
If($TeamsGroups.SharePointSiteUrl -ne $null)
{
$TeamsGroupSite=Get-SPOSite -Identity $TeamsGroups.SharePointSiteUrl
$TeamsResult += [PSCustomObject] @{
GroupName = $TeamsGroups.DisplayName
SiteUrl = $TeamsGroupSite.Url
StorageUsed_inMB = $TeamsGroupSite.StorageUsageCurrent
StorageUsed_inGB=$TeamsGroupSite.StorageUsageCurrent/1024
StorageQuota_inGB = $TeamsGroupSite.StorageQuota/1024
WarningSize_inGB = $TeamsGroupSite.StorageQuotaWarningLevel/1024
}
$Sum +=$TeamsGroupSite.StorageUsageCurrent
}
}

群組的SharePoint網址格式都會是https://BBB.sharepoint.com/sites/Name

限制Teams群組空間大小


限制群組空間大小,是採用MB計算,空間計量設定有兩個地方,一個是警示容量大小,一個是可用容量大小,警示容量顧名思義就是當使用到警示容量會有提示功用,所以,設定容量限制時候,可用容量不可以小於警示容量,不然會出現錯誤,如果要自行設定容量大小,必須先在SharePoint的設定功能去變更網站集合儲存空間管理,必須改為手動

1.變更警示容量大小

1
Set-SPOSite -Identity https://BBB.sharepoint.com/sites/groupname -StorageQuotaWarningLevel 5120

2.變更容量大小

1
Set-SPOSite -Identity https://BBB.sharepoint.com/sites/groupname -StorageQuota 6000

使用上面兩行指令就可以變更容量大小了,如果想知道每個群組的設定值,也可以使用下面方式

1
Get-SPOSite -Identity https://BBB.sharepoint.com/sites/groupname |fl StorageUsageCurrent, StorageQuota,StorageQuotaWarningLevel

以上方式是目前唯一可以去管理Teams方式,希望之後可以把這些指令併入到原本O365平台內管理,此外,這邊另一個不好地方,就是用戶如果自行建立群組,是會被設定預設大小,所以,管理者必須定期掃描哪些是新建立群組,那些群組還沒有被限制空間大小,不然,哪邊某一個群組放上大量檔案,把共用空間用光,就會讓其他群組無法上傳檔案了

參考資料


1.管理網站集合的儲存限制
2.https://technet.microsoft.com/zh-tw/library/mt238272(v=exchg.160).aspx