Configure Require Check Out Settings in SharePoint Server

Require Check out Setting in SharePoint

Check out is a quick way to lock a document from editing by other users. The require check out feature in SharePoint 2016 eliminates the risk of accidentally overriding another user’s update on the same document simultaneously. As SharePoint is a collaboration platform, several users may work on the same document. However, when more than one user attempts to open and edit a document at the same time, a conflict occurs. SharePoint makes it possible for users to lock a document by checking it out so that only one person can edit the document at a time.

Other users cannot see changes made to a document when checked out until it is checked back in. Require users to check out documents before editing them can be configured in the document library settings. An optional comment can also be added when the document is checked in, which can be viewed in the document’s history.

You can have this feature enabled if many people are working on the same documents and avoid conflicts. You can also minimize the impact of conflicts by enabling the document library’s versioning feature without requiring a checkout option turned ON.

To Enable or Disable Require Document Check out on a Library

The require checkout option should be enabled or disabled at the library level. Here is how you can set it:

  1. Navigate to your SharePoint document library >> Go to Library Setting: In the Ribbon, Click on the Library tab and then click on the “Library Settings” Icon
  2. On the Library Settings page, in the General Settings section, click on Versioning Settings.
  3. In the “Require Documents To Be Checked Out Before They Can Be Edited” section, click the Yes option to enable require checkout for all documents in that library.
    require checkout sharepoint
  4. Click OK to save your changes. This applies to require check out setting at the library level. There is no way to mass-enable required check out in an entire site through web UI.

Require Check-out and Mandatory Metadata Columns:
Please note, this feature has some downsides as well, w.r.t user experience. If any document metadata is marked as required, all documents loaded through explorer-view, drag & drop will be checked out by default. You’ll have to provide the required metadata to check in and make them available.

SharePoint: PowerShell to Set Require Checkout

What if you want to disable require checkout or force require check out for all document libraries in your SharePoint site? You can use PowerShell to set require checkout option for document libraries in a SharePoint site collection.

Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue

#Variables for processing
$SiteURL = "https://intranet.crescent.com"
$RequireCheckout = $True

#Get All sites in the given Site collection
$WebsCollection = Get-SPSite $SiteURL | Get-SPWeb -Limit All

#Iterate through each web
ForEach ($web in $WebsCollection)
{
    Write-Host -f Yellow "Processing Web:" $web.Url
    
    #Get All document libraries in the web
    $DocumentLibs = $web.Lists | Where {$_ -is [Microsoft.SharePoint.SPDocumentLibrary] -and $_.hidden -eq $false}

    #Loop through each document library in the web
    ForEach ($Library in $DocumentLibs)
    {
        $Library.ForceCheckout = $RequireCheckout
        $Library.Update()
        Write-host -f Green "`t Updated Require Checkout Option in Library:"$Library.Title
    }
}

This PowerShell sets the require check out before editing documents in document libraries. You can set the variable “RequireCheckout” to False, to make SharePoint not require check out.

PowerShell to Find All Document Libraries where Require Checkout is Enabled:

Let’s find all document libraries in all site collections of a SharePoint web application using PowerShell.

Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue

#Variables for processing
$webApplicationURL = "https://intranet.crescent.com"

#Get All sites in the given web application
$WebsCollection =  Get-SPWebApplication $webApplicationURL | Get-SPSite -Limit ALL | Get-SPWeb -Limit All

#Iterate through each web
ForEach ($web in $WebsCollection)
{
    Write-Host -f Yellow "Searching Web:" $web.Url
    
    #Get All document libraries in the web
    $DocumentLibs = $web.Lists | Where {$_.BaseTemplate -eq "DocumentLibrary" -and $_.hidden -eq $false -and $_.ForceCheckout -eq $true}

    #Loop through each document library in the web
    ForEach ($Library in $DocumentLibs)
    {
        Write-host -f Green "`t Require Checkout Option is Enabled At Library:"$Library.Title
    }
}

To set the require checkout option in SharePoint Online, refer to: How to Configure “Require Check Out” in SharePoint Online using PowerShell?

Salaudeen Rajack

Salaudeen Rajack - Information Technology Expert with Two-decades of hands-on experience, specializing in SharePoint, PowerShell, Microsoft 365, and related products. He has held various positions including SharePoint Architect, Administrator, Developer and consultant, has helped many organizations to implement and optimize SharePoint solutions. Known for his deep technical expertise, He's passionate about sharing the knowledge and insights to help others, through the real-world articles!

Leave a Reply

Your email address will not be published. Required fields are marked *