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

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

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

SharePoint Online:使用 PowerShell 禁用警报


要求:在 SharePoint Online 中禁用警报!

如何在 SharePoint Online 中禁用警报?

曾经想要暂时禁用 SharePoint Online 列表或库的警报吗?尤其是那些部署了工作流程或事件接收器的项目 - 因为添加项目可能会触发警报电子邮件?嗯,无法从 SharePoint Online 用户界面禁用警报。 (但是,您可以删除警报!)。但有个好消息:您可以使用 PowerShell 禁用警报!这篇博文将向您展示如何使用 PowerShell 在 SharePoint Online 中禁用警报。

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

PowerShell 禁用用户的所有警报:

SharePoint Online 允许用户在列表、库和其他对象上设置警报,以便在更新时接收通知。但是,有时您可能需要禁用特定列表、库或站点的警报。在本文中,我们来看看如何在 SharePoint Online 中禁用警报。

让我们禁用给定 Web 中特定用户的所有警报 - SharePoint 警报的范围为 Web 对象!


#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"
$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)
    $Ctx.Load($User)
    $Ctx.Load($User.Alerts)
    $Ctx.ExecuteQuery()

    #Loop through each alert
    Write-host "Total Alerts Found:"$User.Alerts.Count
    ForEach($Alert in $User.Alerts)
    {
        #Check the Alert Status
        If($Alert.Status -ne "Off")
        {
            #Disable the Alert
            $Alert.Status="Off"
            $Alert.UpdateAlert()
            $Ctx.ExecuteQuery()
            Write-host -f Green "Alert '$($Alert.Title)' is disabled on $($Alert.AlertType)"
        }
        Else
        {
            Write-host -f Yellow "Alert '$($Alert.Title)' is already disabled on $($Alert.AlertType)!"
        }
    }
}
Catch {
    write-host -f Red "Error Disabling User Alerts!" $_.Exception.Message
}

要重新打开警报,请使用以下命令:


 ForEach($Alert in $User.Alerts)
    {
        #Check the Alert Status
        If($Alert.Status -eq "Off")
        {
            #Enable the Alert
            $Alert.Status="On"
            $Alert.UpdateAlert()
            $Ctx.ExecuteQuery()
            Write-host -f Green "Alert '$($Alert.Title)' is Enabled on $($Alert.AlertType)"
        }
        Else
        {
            Write-host -f Yellow "Alert '$($Alert.Title)' is already Enabled on $($Alert.AlertType)!"
        }
    }

关闭 SharePoint Online 中特定列表的所有警报

以下是用于禁用在 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/Sites/Marketing"
$ListName="Documents"

#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 from the Web
    $Web = $Ctx.Web
    $WebAlerts = $Web.Alerts
    $List = $Ctx.Web.Lists.GetByTitle($ListName)
    $Ctx.Load($Web)
    $Ctx.Load($WebAlerts)
    $Ctx.Load($List)
    $Ctx.ExecuteQuery()

    #Loop through each alert of the web and get List alerts
    ForEach($Alert in $webAlerts)
    {
        #Get the List and User of the Alert
        $Ctx.Load($Alert.User)
        $Ctx.Load($Alert.List)
        $Ctx.ExecuteQuery()
        $AlertUser = $Alert.user.Title
        
        #Filter the specific List Alerts from web alerts
        If($Alert.List.ID -eq $List.ID)
        {
            #Check the Alert Status
            If ($Alert.Status -ne "Off")
            {
                #Disable the Alert
                $Alert.Status="Off"
                $Alert.UpdateAlert()
                $Ctx.ExecuteQuery()
             
                Write-host -f Green "Alert '$($Alert.Title)' of '$($AlertUser)' is disabled on $($List.Title)!"
            }
            Else
            {
                Write-host -f Yellow "Alert '$($Alert.Title)' of '$($AlertUser)' is already disabled on $($List.Title)!"
            }
        }
    }
}
Catch {
    write-host -f Red "Error Disabling Alerts!" $_.Exception.Message
}

PowerShell 禁用来自网络的所有警报:

要禁用特定网站中所有用户的警报,请使用此 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"

#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
    $Ctx.Load($Web)
    $Ctx.Load($Web.Alerts)
    $Ctx.ExecuteQuery()

    #Loop through each alert
    Write-host "Total Alerts Found:"$Web.Alerts.Count
    ForEach($Alert in $Web.Alerts)
    {
        #Get the User
        $Ctx.Load($Alert.User)
        $Ctx.ExecuteQuery()
        $AlertUser = $Alert.user.Title            

        #Check the Alert Status
        If($Alert.Status -ne "Off")
        {
            #Disable the Alert
            $Alert.Status="Off"
            $Alert.UpdateAlert()
            $Ctx.ExecuteQuery()
            
            Write-host -f Green "Alert '$($Alert.Title)' of '$($AlertUser)' is disabled on $($Alert.AlertType)!"
        }
        Else
        {
            Write-host -f Yellow "Alert '$($Alert.Title)' of '$($AlertUser)' is already disabled on $($Alert.AlertType)!"
        }
    }
}
Catch {
    write-host -f Red "Error Disabling Alerts!" $_.Exception.Message
}

如果要删除警报,可以使用:SharePoint Online 使用 PowerShell 删除警报

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

取消回复欢迎 发表评论:

关灯