SharePoint Online: Set document library versioning on many sites using PowerShell


This PowerShell script imports Sharepoint Online URLs from a CSV, and sets versioning limits on all document libraries in each site in the CSV.

Set Version limits for all Doc Libraries in SharePoint Online Sites lised in a CSV
Author: Tom DeMeulenaere  - Jan 4, 2023
$sitelist = Import-CSV C:\SWSetup\SharepointSites.csv
$SPAdminURL = ""
Connect-PnPOnline -Url $SPAdminURL -Interactive
#Exclude certain libraries
$ExcludedLists = ("Preservation Hold Library","Site Assets","Site Pages","Style Library","Form Templates")
Function Enable-PnPVersionHistory($SiteURL)
    Write-host "Processing Web $($_.URL)" -f Cyan
    Connect-PnPOnline -Url $SiteURL -Interactive
    #Get All Document Libraries
    $Lists = Get-PnPList | Where-Object {$_.Hidden -eq $False -and $_.BaseType -eq "DocumentLibrary" -and $ExcludedLists -notcontains $_.Title}
    #Enable Version History for Document Libraries
        $Lists | ForEach-Object {
        $Params = @{
            "Identity"         = $_.Title
            "EnableVersioning" = $True
            "MajorVersions"    = 50
            "MinorVersions"    = 10
        Set-PnPList @Params
        Write-host "Enabled Version History for "$_.Title -f Green
foreach ($s in $sitelist)
    #Connect to SharePoint Online Site from PnP Online
    Connect-PnPOnline -Url $s.URL -Interactive
    $start = Get-Date
    #Get all Webs and call the function to set version history
    Get-PnPSubWeb -IncludeRootWeb | ForEach-Object { Enable-PnPVersionHistory $s.URL }
    Write-host "Completed setting versioning for "$s.URL" Time Elapsed: "(New-TimeSpan -Start $start -End (Get-Date)) -f Yellow


Source: SharePoint Online: Enable Versioning on All List and Libraries using PowerShell - SharePoint Diary

Share on Google Plus

About Tom DeMeulenaere

Highly accomplished information technology professional with extensive knowledge in System Center Configuration Manager, Windows Server, SharePoint, and Office 365.
    Blogger Comment


Post a Comment

Note: Only a member of this blog may post a comment.