はじめに
SharePoint Onlineのリストではバージョン管理においてメジャーバージョンを有効にした場合、バージョンの保持数は100~50000に制限されます。(2022/05/28現在)
⇓⇓⇓こんな感じ⇓⇓⇓
バージョンが増えると何が起こるかというと、保持しているバージョン分の容量を食ってしまうというSharePoint Onlineの仕様があるようです。
そのため例えば100バージョン保持していると原本と同様の容量×100の容量を食っていることになります。(50000の制限は一体誰が使うのでしょうか…)
引用元:「SharePoint Online :ライブラリのドキュメントのバージョンの容量についてサポートに問い合わせました」
しかし、実はこのバージョン保持数を強引にPowerShellでいじっている海外の猛者がいました。後ほど参考URLも記載いたします。
やり方
用意するファイルは以下です。
- ps1ファイル
ps1ファイル
<#SharePoint Online PowerShell Moduleをインポート#>
Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
<#パラメータ設定#>
$siteURL="サイトのURL"
$listName="変更したいリストライブラリのタイトル"
$versioningLimit = 指定したい100未満のバージョン保持数
<#接続認証#>
$Cred= Get-Credential "アカウント名"
<#コンテキストを設定#>
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
<#リストのバージョン設定取得#>
$List = $Ctx.Web.Lists.GetByTitle($listName)
$List.Retrieve("EnableVersioning")
$Ctx.ExecuteQuery()
<#バージョン履歴保持設定#>
If($List.EnableVersioning){
$List.MajorVersionLimit = $versioningLimit
$List.Update()
$Ctx.ExecuteQuery()
Write-host -f Green "Version History Settings has been Updated on '$($listName)'"
}Else{
Write-host -f Yellow "Version History is turned-off on '$($listName)'"
}
引用元:「SharePoint Online: Set Versioning Limit using PowerShell」
こちらはもちろんSharePoint Onlineの仕様に背くことになるので、このツールを流した後に[設定]>[バージョン設定]の中をいじりたい場合は、一度[次の数のメジャー バージョンを保存する]の設定を100~50000の数値に戻してから諸々の設定を進めてください。(このままだとエラーではじかれます)
さいごに
影響範囲を調べていないのでこちらのツールを流すことで発生した不具合等については責任を負いかねます。自己責任でお願いします。
それにしてもSharePoint Onlineの仕様ってちょこちょこありますが、「そんなの教えてもらわないとわからないよ…」なんてこともよくあるな~と個人的に思っています。