Microsoft 365 のほとんどのラインセンスでは、それぞれのユーザーに対して 1 TB 以上の OneDrive for Business の容量が割り当てられています。OneDrive for Business に保存されるファイルのほとんどは、Word や Excel、PowerPoint などで作成された業務文章だと思うので、1 TB もあればかなりのファイル数を保存しておけるはずです。
しかし、OneDrive for Business に保存されているのは実際のファイルだけではなく、そのファイルの変更履歴として過去のバージョンも保存されているため、思いのほか多くの容量を消費してしまっていたということもあります。
OneDrive for Business の容量を効率よく使うためのバージョン履歴の管理について調べてみました。
過去バージョンの容量を実験で調べてみる
過去の履歴がどのくらい容量を消費するのか実験してみます。結果が分かりやすいように、ちょっとサイズを大きめにしたファイルを用意しておき、過去のバージョンを 4 つほど作成しておきます。

このファイルが実際に消費している OneDrive の容量を調べるには、画面右上の歯車アイコンの [設定] から [OneDrive の設定] – [その他の設定] – [ストレージの測定基準] とメニューを辿っていきます。


記憶域メトリックスの画面が開くので、[ドキュメント] フォルダーの中にある先ほど編集して複数のバージョンを作成しておいたファイルを開きます。するとどうでしょうか、今回の例では元のファイルのサイズが 377 MB であったのに対し、実際に消費している容量は 1.5 GB となっていました。これはすべてのバージョンのサイズを合計したものと等しくなっています。つまり、ファイルを編集して新しいバージョンが作られるたびに、裏側ではファイルのコピーが作成され保存されていることが分かります。

思ったよりも OneDrive の容量を消費してしまっていると感じるのは、こうした普段は目に見えないバージョンの容量があるからです。
編集履歴を自動管理しよう
Microsoft 365 の既定の状態では、それぞれのファイルに対して 500 のバージョン履歴を保存することになっており、消すにはそれぞれのファイルについて手動で削除する必要があります。これでは日が暮れてしまうどころか、年も越してしまいそうです。
そこで、SharePoint や OneDrive for Business では、こうしたファイルのバージョン履歴の管理を自動化できるようになっています。自身の OneDrive for Business の設定を確認するには、まずは先ほどの記憶域メトリックスの画面を開き、その状態で画面右上の歯車アイコンの [設定] から [サイト コンテンツ] を開きます。

すると、フォルダーのようなものの一覧が出てくるので、「ドキュメント」を探して右クリックメニューから [設定] を開きます。

そしてさらに全般設定のなかに [バージョン設定] があるので、こちらをクリックすることで設定を確認できます。既定では、[バージョンの時間制限] が [制限時間なし]。[バージョン数の制限] が「500」に設定されているはずです。


こちらの設定を変更することで、古いバージョン履歴の削除を自動化することができます。
自動
[バージョンの時間制限] を「自動」に設定した場合、Microsoft のアルゴリズムによって過去のバージョンの削除が行われます。このアルゴリズムは、古いバージョンほど保存しておく必要性が薄れていくという考えに基づいており、バージョンが作成されてから時間が経過すればするほど、より多くのバージョンが間引かれていくような動作です。
- 30 日間以内のバージョンはすべて残る(バージョン数の制限内で)
- 30 日~60 日以内のバージョンは 1 時間に 1 つだけに間引かれる
- 60 日~180 日以内のバージョンは、1 日に 1 つだけに間引かれる
- 180 日~のバージョンは、週に 1 つだけに間引かれる
これによって、現在進行形で編集を行っている最近のバージョンはすべて活用できる状態で残しておきながら、必要に応じて数カ月前、場合によっては数年前のバージョンも取り出せるようになります。
[自動制限] の下のバージョン ストレージについて
https://learn.microsoft.com/ja-jp/sharepoint/plan-version-storage#understand-version-storage-under-automatic-limits
手動
[バージョンの時間制限] を「手動」に設定した場合、設定した日数よりも古いバージョンを自動的に削除します。これは自動に比べると動作の条件も明確で分かりやすく、よりイメージしやすいですね。しかし懸念点は、設定した日数よりも古いバージョンをすべて失ってしまう可能性がある点です。例えば、180 日に設定した場合を考えてみると、そのファイルを 1 年間編集しなかった場合、次に開いたときには過去のバージョンはすべて失っていることになります。
そのため、1 年前、2 年前とさかのぼって過去のバージョンを取り出す可能性がある場合には、この設定は利用できません。このあたりは、動作の分かりやすさと天秤にかけて判断することになります。
管理者設定
IT 部門などの SharePoint の全体管理者は、組織全体の設定として先ほどのバージョン履歴の設定を行うことができます。Microsoft 365 管理センターから、SharePoint 管理センターを開き、[設定] – [バージョン履歴の制限] を開きます。

ここではユーザー個別の設定と同様に、[自動] と [手動] を選択できます。設定変更を行い、設定反映後に作成された SharePoint や OneDrive for Business には、この設定が自動的に適用されていきます。
すでに作成済みの OneDrive for Business について管理者が設定を行う場合は、SharePoint Online 管理シェルの Set-SPOListVersionPolicy が利用できます。
PowerShell を使用してライブラリのバージョン履歴の制限を管理する
https://learn.microsoft.com/ja-jp/sharepoint/library-version-limits#manage-version-history-limits-for-a-library-using-powershell
また、管理者は SharePoint Online に過去のバージョン履歴の削除ジョブを登録し、自動削除することもできるようです。自社のテナントに割り当てられている SharePoint のストレージの残容量が切迫している場合には、過去のバージョン履歴を削除することで容量を確保できるかもしれませんね。
サイト、ライブラリ、または OneDrive から既存のバージョンをトリミングする
https://learn.microsoft.com/ja-jp/sharepoint/trim-versions
さいごに
というわけで、目に見えないところで OneDrive for Business の容量を使ってしまっている、過去のバージョン履歴の管理方法について紹介しました。特に OneDrive for Business の容量を制限されている場合などは、上手くこのあたりの設定とも付き合っていきたいですね。

