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

[玩转系统] SharePoint Online:使用 PowerShell 删除警报

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

SharePoint Online:使用 PowerShell 删除警报


要求:删除 SharePoint Online 中的警报。

如何删除 SharePoint Online 中的警报?

警报是 SharePoint Online 的重要组成部分。虽然其中许多警报可能有用,但也可能有一些您不想再收到的警报。值得庆幸的是,有一种方法可以删除 SharePoint Online 警报。这篇博文将引导您完成删除警报所需的步骤,我们还将提供一个 PowerShell 来删除警报,以自动执行此过程。

如何删除 SharePoint Online 中的警报通知?那么,要从 SharePoint Online 删除警报,请按照下列步骤操作:

  1. 登录 SharePoint Online >> 导航到“网站设置”页面。
  2. 在“站点管理”部分下,单击“用户警报”链接
  3. 此页面列出了特定站点(Web)上所有用户的警报。从下拉列表中选择用户,然后单击“更新”按钮以检索所有用户警报。
  4. 列出警报后,可以选择单个警报或多个警报,然后单击“删除所选警报”链接。

    [玩转系统] SharePoint Online:使用 PowerShell 删除警报

SharePoint Online:使用 PowerShell 删除用户的所有警报

如果您像我一样,您可能在 SharePoint Online 中设置了很多警报。而且,如果您像我一样,您可能还会发现自己偶尔想一次删除所有这些内容。幸运的是,PowerShell 让这一切变得简单!我将向您展示如何使用 PowerShell 删除所有警报。

以下是用于删除 SharePoint Online 网站中特定用户的所有警报的 PowerShell:


#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"
   
#Config Parameters
$SiteURL= "https://crescent.sharepoint.com/projects"
$UserID="[email protected]"

#Setup Credentials to connect
$Cred = Get-Credential
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
 
Try {
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = $Cred
   
    #Get All Alerts of the User
    $User = $Ctx.Web.EnsureUser($UserID)
    $UserAlerts = $User.Alerts
    $Ctx.Load($User)
    $Ctx.Load($UserAlerts)
    $Ctx.ExecuteQuery()

    #Loop through each alert
    Write-host "Total Alerts Found:"$User.Alerts.Count
    ForEach($Alert in $UserAlerts)
    {
        #Delete the Alert        
        Write-host -f Green "Alert '$($Alert.Title)' is Deleted on $($Alert.AlertType)"
        $User.Alerts.DeleteAlert($Alert.ID)
        $Ctx.ExecuteQuery()
    }
}
Catch {
    write-host -f Red "Error Deleting User Alerts!" $_.Exception.Message
}

让我们将上述脚本包装成一个可重用的函数,并从 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"
    
#Remove User Alerts in a Site Collection
Function Remove-SPOUserAlerts($SiteURL, $UserID)
{
    Try {
        Write-host -f Yellow "Searching User Alerts in Site:"$SiteURL
        
        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = $Credentials
    
        #Get the Web and its Subwebs
        $Web = $Ctx.Web
        $Ctx.Load($Web)
        $Ctx.Load($Web.Webs)
        $Ctx.ExecuteQuery()

        #Get All Alerts of the User in the site
        $User = $Web.EnsureUser($UserID)
        $UserAlerts = $User.Alerts
        $Ctx.Load($User)
        $Ctx.Load($UserAlerts)
        $Ctx.ExecuteQuery()
 
        #Loop through each alert
        Write-host "Total Number of User Alerts:"$User.Alerts.Count
        ForEach($Alert in $UserAlerts)
        {
            #Delete the Alert        
            $User.Alerts.DeleteAlert($Alert.ID)
            $Ctx.ExecuteQuery()
            Write-host -f Green "Alert '$($Alert.Title)' is Deleted on $($Alert.AlertType)"
        }

        #Process Subsites
        ForEach($Web in $Web.Webs)
        {
            #Call the function recursively
            Remove-SPOUserAlerts -SiteURL $Web.Url -UserID $UserID
        }
    }
    Catch {
        write-host -f Red "Error Deleting User Alerts!" $_.Exception.Message
    }
}
#Set Parameters
$SiteURL= "https://crescent.sharepoint.com/sites/marketing"
$UserID="[email protected]"

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

#Call the function to remove alerts in site collection
Remove-SPOUserAlerts -SiteURL $SiteURL -UserID $UserID

从网络上删除所有用户警报:

此 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"
   
#Config Parameters
$SiteURL= "https://crescent.sharepoint.com/projects"

#Setup Credentials to connect
$Cred = Get-Credential
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
 
Try {
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = $Cred
   
    #Get All Alerts of the Web
    $Web = $Ctx.Web
    $WebAlerts = $Web.Alerts
    $Ctx.Load($Web)    
    $Ctx.Load($WebAlerts)
    $Ctx.ExecuteQuery()

    #Loop through each alert
    Write-host "Total Alerts Found:"$WebAlerts.Count

    ForEach($Alert in $WebAlerts)
    {
        #Get the User of the Alert
        $Ctx.Load($Alert.User)
        $Ctx.ExecuteQuery()
        $AlertUser = $Alert.user.Title

        #Delete the Alert        
        $web.Alerts.DeleteAlert($Alert.ID)
        $Ctx.ExecuteQuery()

        Write-host -f Green "Alert '$($Alert.Title)' of '$($AlertUser)' is Deleted on $($Alert.AlertType)"
    }
}
Catch {
    write-host -f Red "Error Deleting Alerts!" $_.Exception.Message
}

PnP PowerShell 删除用户警报

以下是使用 Get-PnPAlert 和 Remove-PnPAlert cmdlet 删除 SharePoint Online 中的用户警报的 PnP PowerShell 脚本:


$SiteURL ="https://crescent.sharepoint.com/sites/Retail"
$ListName = "Projects"
$UserID = "i:0#.f|membership|[email protected]"

#Connec tot SharePoint Online
Connect-PnPOnline -URL $SiteURL -Interactive

#Get All alerts of the user from a list 
Get-PnPAlert -List $ListName -User $UserID

#Remove the alert
Remove-PnPAlert -Identity ab59b35f-7b9b-4189-8aed-18a9bf573adc -User $UserID -Force

如果要禁用警报,而不是删除它们,请使用:SharePoint Online 使用 PowerShell 禁用警报

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

取消回复欢迎 发表评论:

关灯