はじめに

SharePoint Online のドキュメントライブラリは自動的にバージョン管理が行われるため、長期間運用すると容量が急増しがちです。以前の記事ではライブラリ単位で日付指定のバージョン削除手順を解説しましたが、「特定フォルダー配下だけ」 に絞って再帰的にバージョンを削除したいニーズも増えています。

本稿では、PowerShell(PnP.PowerShell)を使い、指定フォルダー(サブフォルダー含む最深階層まで)の 30 日より古いバージョン を一括削除する手順をステップバイステップで紹介します。


想定読者

  • SharePoint Online の容量不足に悩んでいる
  • ライブラリではなく特定フォルダーだけバージョンを削除したい
  • PowerShell で自動化したい

前提条件

要件内容リンク
PowerShell 7.x 以上最新版をインストールhttps://learn.microsoft.com/ja-jp/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.5#installing-the-msi-package
PnP.PowerShell モジュールSharePoint 操作用Install-Module PnP.PowerShell -Force
SharePoint 編集権限対象サイトのサイトコレクション管理者権限

手順 (Step‑by‑Step)

1️⃣ PowerShell 7.x のインストール

Microsoft の公式ドキュメントから手順に従いインストールMSI パッケージのインストール

2️⃣ PnP.PowerShell の導入

Install-Module PnP.PowerShell -Force

3️⃣ スクリプトの作成

以下を Remove-OldVersions.ps1 として保存。各パラメーター(接続先サイト、フォルダのサイト相対パス、何日より古いバージョンを削除するか)は実行前に必ず修正してください。

# SharePoint Online に接続
Connect-PnPOnline -Url "https://yourtenant.sharepoint.com/sites/SITENAME" -UseWebLogin

# 設定
$FolderUrl = "Shared Documents/親フォルダ/子フォルダ"    # フォルダのサイト相対パス
$Cutoff    = (Get-Date).AddDays(-30)    # 何日より古いバージョンを削除するか。本パラメーターは30日

# フォルダー配下の全ファイルを再帰取得して古いバージョンを削除
Get-PnPFileInFolder -FolderSiteRelativeUrl $FolderUrl -Recurse -ExcludeSystemFolders |
ForEach-Object {
    $ctx  = Get-PnPContext
    $file = $ctx.Web.GetFileByServerRelativeUrl($_.ServerRelativeUrl)
    $ctx.Load($file); $ctx.Load($file.Versions); $ctx.ExecuteQuery()

    $old = @($file.Versions | Where { $_.Created -lt $Cutoff })
    if ($old.Count -gt 0) {
        $old | ForEach-Object { $_.DeleteObject() }
        $ctx.ExecuteQuery()
        Write-Host "Deleted $($old.Count) versions → $($_.ServerRelativeUrl)"
    }
}

4️⃣ スクリプトの実行

PowerShell 7.を起動し、Remove-OldVersions.ps1 が保存されているディレクトリへ移動して以下コマンドを実行

.\Remove-OldVersions.ps1

実行後の確認

  • 対象フォルダ内のファイルバージョン履歴が削除されていること
  • SharePoint 管理センターの容量レポートでストレージ使用量が減少していること ※反映には1日程度かかります

注意事項

  • 実行前に必ずテスト環境で検証をおこなってください
  • 大量ファイル時は実行時間が長くなる可能性があります

以上、SharePoint の特定フォルダーだけ深層まで絞ったバージョン履歴削除手順でした。ぜひお試しください!

Microsoft 365に関するご相談やお悩みがございましたら、ぜひ株式会社WITHWITまでお気軽にお問い合わせください。
数あるクラウドサービスの中でMicrosoft 365 に特化してきたからこそ導入前から導入後の定着に至るまで、幅広いご相談に対応いたします。