You can hide lists and libraries in a SharePoint site using SharePoint designer or PowerShell cmdlet which can be using for different operations. There are several hidden lists in SharePoint which exists in a SharePoint site just like workflow history list, User Information list and many others which have different usage in SharePoint. Below screenshot shows the list of hidden SharePoint lists which an be found at the root site.

PowerShell Script to generate report of hidden lists

Below is a simple PowerShell script which I used to generate report of hidden lists. I have written a function GetHiddenListDetail which take the site url and return the list of all hidden list on that specific site.

Add-Type -Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

function GetHiddenListDetail($siteUrl)
{
    #*** you can also move below line outside the function to get rid of login again if you need to call the function multiple time. ***
    $Cred= Get-Credential
    
    $ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteURL) 
    $credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
    $ctx.Credentials = $credentials 

    $web = $ctx.Web  

    $lists = $web.Lists
    $ctx.Load($lists)
    $ctx.ExecuteQuery()
    Write-Host -ForegroundColor Yellow "The site URL is" $siteUrl

    #output the list item count
    $tableListNames = foreach ($list in $lists)
    {
		if($list.Hidden)
		{
			$ObjectProperties = @{
				ListName = $list.Title
				ItemCount = $list.ItemCount
				"BaseTemplate ID" = $list.BaseTemplate
				Created = $list.Created 
				BaseType = $list.BaseType
				Id = $list.Id 
				LastItemModifiedDate = $list.LastItemModifiedDate 
				Description = $list.Description
			}

			New-Object psobject -Property $ObjectProperties
		}
    }

    Write-Host -ForegroundColor Green "List item count completed successfully"
    return $tableListNames;
}

Use below cmdlet for executing the above function, in below cmdlet I have added the site URL and used grid view to show the data.

GetHiddenListDetail "https://mstalk.sharepoint.com"| Out-GridView

Get Hidden lists using PowerShell

Adnan, a distinguished professional, boasts an impressive track record as a Microsoft MVP, having achieved this prestigious recognition for the eighth consecutive year since 2015. With an extensive career spanning over 18 years, Adnan has honed his expertise in various domains, notably excelling in SharePoint, Microsoft 365, Microsoft Teams, the .Net Platform, and Microsoft BI. Presently, he holds the esteemed position of Senior Microsoft Consultant at Olive + Goose. Notably, Adnan served as the MCT Regional Lead for the Pakistan Chapter from 2012 to 2017, showcasing his leadership and commitment to fostering growth within the tech community. His journey in the realm of SharePoint spans 14 years, during which he has undertaken diverse projects involving both intranet and internet solutions for both private and government sectors. His impact has transcended geographical boundaries, leaving a mark on projects in the United States and the Gulf region, often collaborating with Fortune 500 companies. Beyond his roles, Adnan is a dedicated educator, sharing his insights and knowledge as a trainer. He also passionately advocates for technology, frequently engaging with the community through speaking engagements in various forums. His multifaceted contributions exemplify his dedication to the tech field and his role in driving its evolution.

Leave a Reply