Teamsチームのストレージ上限や使用量はSharePoint Online管理センター(GUI)から確認が可能ですが、プライベートチャネル・共有チャネルのストレージ情報はPowerShellコマンドからのみ確認することができます。
このため今回は、テナント内に存在するチーム・プライベートチャネル・共有チャネルのストレージ情報をPowerShellコマンドで一覧出力する方法をご紹介します。
ストレージ情報を一覧出力する
一覧を取得・出力するPowerShellコマンド
まず、SharePoint管理センターへ接続します。
Connectコマンドを実行すると認証画面が表示されるので、管理者のアカウント・パスワードでサインインして下さい。
Connect-SPOService -Url https://[SharePoint管理センターのURL]
パラメータのUrlには、接続するテナントのSharePoint管理センターのURL(~.sharepoint.comまでの部分)を指定します。
Get-SPOSiteコマンド*2を実行し、SharePointサイトを一覧で出力します。
既定のままだと200件までしか出力されないため、-Limit ALLを付けてテナント内のサイトすべてが出力されるようにします。
またすべてのサイトを取得した場合、テナント開設時に既定で準備されるシステムサイト等も取得されてしまうため、今回は".sharepoint.com/sites/"でフィルタし、作成されたSharePointサイトのみが出力されるようにします。
Get-SPOSite -Limit ALL -Filter { Url -like ".sharepoint.com/sites/" }
上記コマンドは出力項目を指定していないため、実行結果では一部項目のみが出力されます。
Get-SPOSiteで取得できる項目をすべて取得し、さらにCSVへ出力されるよう以下コマンドを実行します。
Get-SPOSite -Limit ALL -Filter { Url -like ".sharepoint.com/sites/" } | Select-Object * | Sort-Object Url | Export-Csv -Encoding UTF8 -NoTypeInformation -Path (".\SPOサイト容量一覧_"+ (Get-Date -Format yyyyMMdd_HHmmss) +".csv")
コマンドを実行したディレクトリに、"SPOサイト容量一覧_yyyyMMdd_HHmmss.csv"というファイル名でCSVがエクスポートされます。
※yyyyMMdd_HHmmssはコマンド実行時間が入ります
取得した項目の解説
Get-SPOSiteでは80個を超える項目が取得できますが、ストレージ情報を確認する際に必要な項目は以下になります。
項目名 | 内容 | 補足 |
StorageUsageCurrent | 現在のストレージ使用量 | MB単位で出力 |
GroupId | サイトのグループID | プライベートチャネルやクラシックサイトなどはGroup IDを持たないため、 00000000-0000-0000-0000-000000000000と出力される |
Url | サイトのURL | - |
StorageQuota | ストレージ上限 | MB単位で出力 |
StorageQuotaWarningLevel | ストレージ使用量の警告値 | MB単位で出力 使用容量がここで設定されている値に達した場合に、所有者へメールが送信される |
Title | サイト名 | - |
IsTeamsConnected | サイトがTeamsに接続されているか否か | Teamsに接続済みの場合、Trueと出力される*3 |
TeamsChannelType | チームチャネル種類 | プライベートチャネルの場合"PrivateChannel"、 共有チャネルの場合"SharedChannel"、 それ以外は"None"と出力される |
ストレージ上限を更新する
一覧取得に合わせて、ストレージ上限を更新する方法をご紹介します。
下記ページで紹介した方法を使って、今回Get-SPOSiteで出力されたCSVを利用してストレージ上限を更新する事ができます。
blog.jbs.co.jp
まず、CSVを以下のように編集します。
- ストレージ上限を更新するサイトのみにする(更新しないサイトについては行削除する)
- 「StorageQuota」を更新したい値に書き換える
※「StorageQuota」以外の項目はCSVにそのまま残しておいて問題ありません(値は変更しないでください)
以下コマンドを実行しストレージ上限を更新します。
"編集したCSVのフルパス"部分は、上記で編集したCSVのフルパスを指定してください。
Import-Csv "編集したCSVのフルパス" | Foreach { Set-SPOSite -Identity $_.Url -StorageQuota $_.StorageQuota }
CSVに記載されたサイト数分Set-SPOSiteコマンドを実行し、StorageQuotaを更新します。
終わりに
TeamsやSharePointを管理していると、PowerShellからしか確認・更新できない項目が多々あることが分かります。
またGUIから確認・更新できる項目であっても、作業効率の面でPowerShellから管理する方が良いものもたくさんあります。
このようなPowerShellでの管理方法をたくさん知っていると強みになります。
*1:https://learn.microsoft.com/ja-jp/powershell/sharepoint/sharepoint-online/connect-sharepoint-online
*2:Get-SPOSite (Microsoft.Online.SharePoint.PowerShell) | Microsoft Learn
*3:Get-SPOSiteのDocsにはこのように記載がありましたが、私の環境ではTeamsに接続されていてもFalseと出力されるものがあったため、この項目を利用してチームサイトかどうか区別したい場合は、SharePoint管理センター(GUI)からもチームサイトかどうか確認するなどダブルチェックをお願いします
Hiroko, Kimura(日本ビジネスシステムズ株式会社)
Microsoft 365製品の提案~運用が担当領域、特にTeams/Teams Phone多めです。趣味は音楽とテレビと映画。趣味にしたいのは筋トレ(エンジニアには筋肉が必要)。
担当記事一覧