Add Custom Scope to SharePoint Search Dropdown using PowerShell
Requirement: We’ve created a custom search scope “Search All Documents” in SharePoint Central Admin and would like to include it in search scope drop downs of few site collections.
SharePoint: Add search scope to drop-down
Well, it’s a few clicks job to include custom search scopes to search drop down in SharePoint. Here is how:
- Go to Site Actions >> Site Settings
- Click on “Search Scopes” link under Site collection administration
- Click on the “Display Groups” link and choose “Search Dropdown”
- From here, we can include/exclude any scopes to search dropdown by simply selecting/deselecting check-boxes.
Add a custom scope to SharePoint Search Scope Dropdowns using PowerShell
While it’s not tedious to customize search scope dropdowns by following the above steps for a few sites, We had to do it for all site collections under a particular managed path. (around 50!). Here is the PowerShell script to add custom search scopes to the SharePoint search dropdown:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Set these three variables accordingly
$SiteURL = "https://sharepoint.crescent.com/sites/operations/"
$CustomSearchScopeName = "Search All Documents"
$DisplayGroupName = "Search Dropdown"
#Get the Site Object
$Site= Get-SPSite $siteURL
#Initialize
$SearchContext= [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($site)
$Scopes= New-Object Microsoft.Office.Server.Search.Administration.Scopes($searchContext)
#Get the Display Group
$SearchDropdownDisplayGroup = $scopes.GetDisplayGroupsForSite($SiteURL) | Select-Object -First 1
#Get the custom scope
$CustomSearchScope = $Scopes.GetSharedScope($CustomSearchScopeName)
#Add custom scope to Display group
$SearchDropdownDisplayGroup.Add($CustomSearchScope)
$SearchDropdownDisplayGroup.Update()