当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] SharePoint Online:使用 PowerShell 从搜索中删除列表

作者:精品下载站 日期:2024-12-14 14:45:40 浏览:14 分类:玩电脑

SharePoint Online:使用 PowerShell 从搜索中删除列表


默认情况下,所有 SharePoint Online 列表和库都会显示在搜索结果中。在某些情况下,您希望删除特定列表的内容,使其不再出现在搜索结果中,并防止其被编入索引并显示在搜索结果中。假设,您想要隐藏图像库的内容,使其不出现在搜索结果中。此博文将向您展示如何从 SharePoint Online 的搜索结果中删除列表。

如何从 SharePoint Online Search 中删除列表

您可以配置要从搜索中排除的特定列表。要使用用户界面从搜索索引中排除列表或库,请转至:

  1. 导航到列表>>单击设置齿轮>>选择“列表设置”
  2. 在列表设置页面,点击“高级设置”。
  3. 向下滚动并在“搜索”部分下,为“允许此文档库中的项目出现在搜索结果中吗?”选择“是”选项。

    [玩转系统] SharePoint Online:使用 PowerShell 从搜索中删除列表

  4. 单击“确定”提交更改。

此设置允许或禁止 SharePoint Online 爬网程序对列表建立索引。等待 4 到 6 小时,该列表就会从搜索结果中删除。

从 SharePoint Online 中删除搜索结果

虽然上述步骤阻止 SharePoint Online 搜索爬网程序对特定列表建立索引,但已建立索引的列表的现有搜索结果又如何呢?那么,您可以从 SharePoint Online 中删除搜索结果:

  1. 登录 SharePoint Online 管理中心 >> 单击“更多功能”。
  2. 打开搜索 >> 在搜索页面上,单击“删除搜索结果”。
  3. 输入要从搜索结果中删除的项目的完整 URL。
  4. 单击“立即删除”。

    [玩转系统] SharePoint Online:使用 PowerShell 从搜索中删除列表

如何使用 PowerShell 从搜索中删除 SharePoint Online 列表

让我们使用 PowerShell 从 SharePoint Online 搜索中排除列表或库。


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#Set parameter values
$SiteURL="https://crescent.sharepoint.com"
$ListName = "Documents"

Try {
    #Get Credentials to connect
    $Cred= Get-Credential
    $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
  
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = $Credentials
 
    #Get the list
    $List = $Ctx.Web.Lists.GetByTitle($ListName)
    
    #Exclude from Search Results
    $List.NoCrawl = $True
    $List.Update() 

    $Ctx.ExecuteQuery() 

    Write-host "List has been excluded from Search Index!" -f Green
}
Catch {
    write-host -f Red "Error Excluding List from Search Index!" $_.Exception.Message
} 

用于从 SharePoint Online 搜索禁用列表或文档库的 PowerShell 脚本

让我们通过将脚本包装在函数中来使其可重用。将“NoCrawl”参数设置为“True”以从搜索中删除列表。


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#Function to Enable or Disable Search Crawl
Function Set-SPOListCrawl()
{
    Param ([string]$ListName,[bool]$NoCrawl)

    Try {
        #Get the list
        $List = $Ctx.Web.Lists.GetByTitle($ListName)
    
        #Enable/Disable List from Search Results
        $List.NoCrawl = $NoCrawl
        $List.Update() 

        $Ctx.ExecuteQuery() 

        Write-host "List Search Crawl Settings has been Updated!" -f Green
    }
    Catch {
        write-host -f Red "Error Setting List Search Crawler Settings!" $_.Exception.Message
    }
}

#Set parameter values
$SiteURL="https://crescent.sharepoint.com/"

#Get Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials

#Call the Function to Exclude a list from Search Crawl
Set-SPOListCrawl -ListName "Documents" -NoCrawl $True

这将从搜索结果中删除列表或库的内容。这是另一篇关于从本地 SharePoint 的搜索索引中排除列表或库的文章:如何从搜索索引中排除 SharePoint 网站或列表?

SharePoint Online:使用 PnP PowerShell 从搜索中排除列表

以下是如何使用 PnP PowerShell 从搜索结果中删除列表:


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$ListName = "Team Documents"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Get the Context
$Context = Get-PnPContext
 
#Get the List
$List = Get-PnPList -Identity $ListName

If($List)
{
    #Set "NoCrawl" flag to exclude list from search
    $List.NoCrawl = $True 
    $List.Update() 
    $Context.ExecuteQuery()
    Write-host -f Green "List Excluded from Search Index Successfully. Changes takes effect after the next crawl!"
}
else
{
    Write-host -f Yellow "Could not find List '$ListName'"
}

您指定的列表或文档库现在应该从搜索结果中排除。更改可能需要一些时间才能生效,因为搜索结果是从索引返回的。要从搜索结果中删除 SharePoint Online 网站,请使用:如何从 SharePoint Online 的搜索结果中删除网站?

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯