Forum Discussion
Ali Salih
Feb 03, 2017Iron Contributor
CSOM challenge - SharePoint Online
Hey community. Do you know a way to access file objects that you can see in UI under Library Settings -> "Manage files that have no checked in version" in a SharePoint Online doc. lib via PowerShel...
Feb 03, 2017
Hi,
Check the below script. To check files for "Manage files that have no checked in version", you need to use the condition :
$file.MajorVersion -eq "1" -and $file.Level -eq "Checkout"
This script uses SPO PnP also.
$cred=Get-Credential
$UName=$cred.UserName.ToString()
$Pass =$cred.GetNetworkCredential().Password
$SiteURL = "https:// tenantname.sharepoint.com/sites/testsite2"
$DocLibName = "Documents"
connect-pnponline -Url $SiteURL -Credentials $cred
$loadInfo1 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
$loadInfo2 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
$Password = $Pass | ConvertTo-SecureString -AsPlainText -Force
#Bind to site collection
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UName,$Password)
$Context.Credentials = $Creds
#Retrieve list
$List = $Context.Web.Lists.GetByTitle($DocLibName)
$Context.Load($List)
$Context.ExecuteQuery()
$Allfiles= $List.RootFolder.Files
$Context.Load($Allfiles)
$Context.ExecuteQuery()
foreach( $file in $Allfiles){
If($file.MajorVersion -eq "1" -and $file.Level -eq "Checkout")
{
Set-PnPFileCheckedIn -Url $file.ServerRelativeUrl
Write-Host $file.Name "Checked-in "
}
}