SharePoint 自動バージョン履歴クリーンアップ(Intelligent Versioning)完全解説 ― 古いバージョンを自動で間引く仕組みと設定方法

SharePoint Online / OneDrive のストレージを圧迫する最大要因の1つが、ファイルのバージョン履歴です。デフォルトでは1ファイルあたり最大 500 バージョンまで保持されるため、Office ファイル(Word・Excel・PowerPoint)を頻繁に編集するチームでは、本体ファイルの数十倍のストレージをバージョンが消費しています。

Microsoft が 2024 年から段階的に展開している Intelligent Versioning(インテリジェント バージョニング、別名: Automatic Version History Cleanup) は、この問題を自動で解消する機能です。本記事では、その仕組み・設定方法・注意点を中堅・中小企業の情シス目線で解説します。

TL;DR

  • Intelligent Versioning は 古いバージョンを時間経過に応じて段階的に削除する SharePoint Online / OneDrive の機能
  • 階層保持ルール: 0〜30 日(全保持)→ 30〜60 日(毎時1版)→ 60〜180 日(毎日1版)→ 180 日〜(毎週1版)
  • Microsoft 公式は 最大 96% のバージョンストレージ削減を謳う
  • 設定は SharePoint 管理センター で Automatic を選択、または PowerShell でサイト単位設定
  • 新規サイトにはテナント設定が自動適用、既存サイトは手動適用が必要
  • 保持ポリシー対象ファイルは削除されない(コンプライアンス優先)

Intelligent Versioning とは

Intelligent Versioning は、SharePoint Online と OneDrive for Business のドキュメントライブラリに対し、ファイルのバージョン履歴を時間経過に基づいてインテリジェントに間引く機能です。

従来のデフォルト動作では「最大 500 バージョン」を上限に新しい順から積み重ねていく仕組みで、500 バージョンに達すると古いものから FIFO で削除されていました。これでは「直近 1 か月で 500 回編集されたファイル」では 1 か月以上前のバージョンがまったく残らない一方、「年に数回しか編集されないファイル」では何年も前のバージョンまで完全に残り続けるなど、価値と保持期間のミスマッチが発生していました。

Intelligent Versioning では、以下の階層ルールで「新しいものほど密に、古いものほど疎に」バージョンを保持します。

階層保持ルール(Intelligent Versioning のアルゴリズム)

バージョンの経過時間保持ルール
0 〜 30 日全バージョン保持(最大 500 版まで)
30 〜 60 日1 時間あたり 1 バージョンだけ保持
60 〜 180 日1 日あたり 1 バージョンだけ保持
180 日以降1 週間あたり 1 バージョンだけ保持

このルールにより、直近の活発な共同編集中はすべての変更が追えるリッチな履歴が残り、半年以上前のバージョンは「週次スナップショット」程度に間引かれます。Microsoft によれば、6 か月経過時点で**最大 96%**のバージョンストレージ削減を達成できるケースがあります。

設定方法

方法 1: SharePoint 管理センターでテナント全体に適用

最も簡単な方法は SharePoint 管理センターから設定することです。

  1. SharePoint 管理センターを開く(https://[tenant]-admin.sharepoint.com
  2. 左メニュー → 設定バージョン履歴上限(Version history limits)
  3. **Automatic(自動)**を選択して保存

この設定は 新規に作成されるサイト に自動適用されます。既存サイトへは遡って適用されません

方法 2: PowerShell でサイト単位に適用

既存サイトに Intelligent Versioning を適用するには、SharePoint Online Management Shell を使います。

サイト単位で有効化

# 接続
Connect-SPOService -Url https://[tenant]-admin.sharepoint.com

# 1サイトに対して自動バージョントリミングを有効化
Set-SPOSite -Identity "https://[tenant].sharepoint.com/sites/[sitename]" `
            -EnableAutoExpirationVersionTrim $true

テナント全体の既存サイトに一括適用

# すべてのサイトに対して順次適用
Get-SPOSite -Limit All | ForEach-Object {
    Set-SPOSite -Identity $_.Url -EnableAutoExpirationVersionTrim $true
}

実行直後は設定の有効化だけで、実際のトリミング(古いバージョン削除)はバックグラウンドジョブで非同期に処理されます。完了までに数日〜数週間かかることがあります。

方法 3: ライブラリ単位で個別に設定

「特定のライブラリだけは全バージョンを残したい」「特定のライブラリだけ自動削減したい」というケースでは、ライブラリの設定からバージョン制御を変更できます。

  1. 対象のドキュメントライブラリを開く
  2. 右上の歯車 → ライブラリの設定その他のライブラリの設定
  3. バージョン管理設定バージョン制限
  4. Automatic または **Manual(カスタム値)**を選択

ライブラリ単位の設定はサイト・テナント設定をオーバーライドします。

既存サイトへの一括適用スクリプト例

中堅・中小企業の現場で実用的な、進捗ログ付きの一括適用スクリプトを示します。

# 接続
Connect-SPOService -Url https://[tenant]-admin.sharepoint.com

# 対象サイト取得(OneDrive を除く全SharePointサイト)
$sites = Get-SPOSite -Limit All | Where-Object {
    $_.Template -notlike "SPSPERS*" -and
    $_.Url -notlike "*-my.sharepoint.com*"
}

Write-Host "対象サイト数: $($sites.Count)"

# 進捗ログを取りつつ適用
$i = 0
$results = foreach ($site in $sites) {
    $i++
    Write-Progress -Activity "Intelligent Versioning 適用中" `
                   -Status "$i / $($sites.Count): $($site.Url)" `
                   -PercentComplete ($i / $sites.Count * 100)

    try {
        Set-SPOSite -Identity $site.Url -EnableAutoExpirationVersionTrim $true -ErrorAction Stop
        [PSCustomObject]@{
            Url    = $site.Url
            Status = "OK"
            Error  = $null
        }
    } catch {
        [PSCustomObject]@{
            Url    = $site.Url
            Status = "ERROR"
            Error  = $_.Exception.Message
        }
    }
}

# CSV エクスポート
$results | Export-Csv -Path "intelligent-versioning-rollout.csv" -NoTypeInformation -Encoding UTF8
$results | Group-Object Status | Format-Table Name, Count

OneDrive サイトは -my.sharepoint.com ドメインに作成され、テンプレートが SPSPERS 系のため、上記スクリプトでは除外しています。OneDrive にも適用したい場合は条件を外してください。

既存の古いバージョンを今すぐ削減する:手動トリム

Intelligent Versioning を有効化しても、既存の蓄積されたバージョンが即座に削除されるわけではありません。バックグラウンドジョブで段階的に処理されるためです。

「いますぐ既存バージョンを大幅削減したい」という場合は、手動バージョントリム機能を併用します。

# 既存バージョンに対して自動トリムルールを適用
New-SPOSiteFileVersionExpirationReport `
    -Identity "https://[tenant].sharepoint.com/sites/[sitename]" `
    -ReportUrl "https://[tenant].sharepoint.com/sites/admin/Shared%20Documents/version-report.csv"

このコマンドで「もし Intelligent Versioning が適用されたら、どのバージョンが削除されるか」をレポート出力できます。レポートを確認した上で、削除を実行:

# レポート確認後、実際にトリム実行
Set-SPOSite -Identity "https://[tenant].sharepoint.com/sites/[sitename]" `
            -ApplyToExistingDocumentLibraries `
            -EnableAutoExpirationVersionTrim $true

Intelligent Versioning が動作しないケース

以下のケースでは、Intelligent Versioning が有効になっていてもバージョン削除がブロックされます。

1. 保持ポリシーが適用されているファイル

Microsoft Purview の保持ポリシー(Retention Policy)が適用されているファイルは、保持期間中は削除されません。コンプライアンス要件が優先されるためです。

具体的には、保持ポリシー対象のファイルが編集されると、ファイルとそのバージョンが Preservation Hold Library(保持ホールド ライブラリ) にコピーされ、そこに保管されます。Intelligent Versioning は Preservation Hold Library 内のファイルには影響を与えません

つまり「保持ポリシーで残し続ける」「Intelligent Versioning で間引く」は両立し、コンプライアンス遵守を優先しつつ通常ライブラリのストレージは削減できます。

2. eDiscovery の保留がかかっているファイル

訴訟ホールド・eDiscovery ホールド対象のファイルも削除されません。

3. ライブラリ単位で Manual 設定にしているライブラリ

ライブラリ設定で明示的に「Manual」「カウントベース(例: 500 versions まで)」を選んでいる場合、テナント設定の Automatic は適用されません。

注意点・落とし穴

① 元に戻せない

一度 Intelligent Versioning ルールでバージョンが削除されると、復元できません。「これは大事なバージョンだから残しておきたい」というケースでは、事前にチェックインコメント付きのバージョンを作るか、ファイルそのものを別名コピーしてください。

② ジョブの進行は非同期で時間がかかる

設定有効化から実際の容量削減が見えるまで、サイト規模により数日〜数週間かかります。「設定したのに容量が減らない」と慌てず、SharePoint 管理センターのサイト容量レポートで進捗を確認してください。

③ 既存サイトには遡って自動適用されない

テナント設定で Automatic にしても、それは「今後作成される新規サイト」にのみ自動適用されます。既存サイトには PowerShell で個別に適用する必要がある点を見落としやすいので注意してください。

④ OneDrive にも展開可能だが要確認

Intelligent Versioning は OneDrive for Business にも適用可能ですが、個人領域のためユーザー教育を含めた展開計画が必要です。

⑤ ファイル種別による効果差

頻繁に編集される Office ファイル(共同編集中の Word・Excel)では効果が大きく、画像・動画・PDF など追記・更新が少ないファイルでは効果が限定的です。

効果測定の方法

Intelligent Versioning 導入後の効果は以下で確認できます。

SharePoint 管理センター

  • アクティブなサイトページのストレージ使用量列を導入前後で比較
  • サイト個別の容量推移グラフ

PowerShell でサイト容量取得

Get-SPOSite -Limit All |
    Select-Object Url, StorageUsageCurrent, StorageQuota |
    Export-Csv -Path "site-storage-snapshot.csv" -NoTypeInformation -Encoding UTF8

このスクリプトを導入前と導入後(1 週間後・1 か月後・3 か月後)に実行して差分を取ると、削減効果が定量化できます。

中堅・中小企業の実務的な進め方

過去の支援案件をベースに、現実的な展開ステップを示します。

Step 1: 現状把握(1 週間)

  • SharePoint 全サイトの容量スナップショット取得(上記 PowerShell)
  • 容量上位 10 サイトの所有者・用途確認
  • バージョン履歴がストレージのどの程度を占めるか試算

Step 2: ポリシー決定(1 週間)

  • 「全サイト Automatic 一括」か「特定サイト除外」かを経営判断
  • 保持ポリシー対象サイトのリストアップ
  • 法務・コンプライアンス担当との合意

Step 3: パイロット展開(2 週間)

  • 容量上位 3〜5 サイトに先行適用
  • 1 週間の容量変化を観察
  • ユーザー側の影響有無を確認

Step 4: 全社展開(1 か月)

  • 一括適用スクリプトの実行(休日夜間推奨)
  • 進捗の週次モニタリング
  • 完了報告と効果測定

中堅・中小企業の場合、合計 1.5〜2 か月で展開完了します。

まとめ

  • Intelligent Versioning は SharePoint / OneDrive の自動バージョン履歴クリーンアップ機能
  • 階層保持ルール(30 日・60 日・180 日・週次)で**最大 96%**のバージョンストレージ削減
  • 設定は SharePoint 管理センターまたは PowerShell(Set-SPOSite -EnableAutoExpirationVersionTrim $true
  • 既存サイトには遡及適用されないため、PowerShell で一括適用が必要
  • 保持ポリシー対象ファイルは削除されない(コンプライアンス両立)
  • 中堅・中小企業では 1.5〜2 か月で展開可能

容量逼迫のままだとサイトが読み取り専用になり業務停止のリスクがあるため、まだ未対応のテナントは早めの適用をお勧めします。SharePoint の容量が足りなくなった場合の追加購入オプション・アーカイブ機能との比較は、SharePoint 容量超過時の対応と容量追加オプション完全解説 を参照してください。

参考リンク


関連記事

☁️Support365 — 運用代行・ヘルプデスク

Microsoft 365の運用管理・トラブル対応・アカウント管理まで、日々のIT業務をまるごとサポート。

情シスのお悩み、ご相談ください

専門スタッフが貴社の課題に合わせたご提案をいたします。

メールでのお問い合わせはこちら →
60分無料相談