目次
はじめに
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 に特化してきたからこそ導入前から導入後の定着に至るまで、幅広いご相談に対応いたします。