ค้นหาเว็บไซต์

ปิดใช้งานการแจ้งเตือนในรายการ SharePoint 2013 โดยใช้ PowerShell


ความต้องการ: ปิดใช้งานอีเมลแจ้งเตือนในรายการ SharePoint ชั่วคราว

จะปิดใช้งานการแจ้งเตือนในรายการ SharePoint ได้อย่างไร

วัตถุการแจ้งเตือนของ SharePoint มีคุณสมบัติ "สถานะ" ซึ่งสามารถเปิดหรือปิดได้ เนื่องจากไม่มี UI ที่จะปิดใช้งานหรือเปิดใช้งานการแจ้งเตือนใน SharePoint โดยตรงจากเบราว์เซอร์ เราจึงสามารถดำเนินการดังกล่าวโดยทางโปรแกรมด้วย PowerShell นี่คือสคริปต์ PowerShell ของฉันเพื่อปิดใช้งานการแจ้งเตือนในรายการหรือไลบรารี SharePoint 2010/2013

ข้อสำคัญ: สคริปต์นี้ปิดใช้งานเฉพาะการแจ้งเตือนที่มีอยู่ในรายการหรือไลบรารีที่ระบุเท่านั้น! มันไม่ได้ (แน่นอน ไม่สามารถ!) ปิดการใช้งานการแจ้งเตือนใหม่ใด ๆ ที่คุณสร้างในรายการเฉพาะ! คุณอาจต้องปิดการแจ้งเตือนในระดับแอปพลิเคชันบนเว็บชั่วคราวโดยเปลี่ยนการตั้งค่าสถานะ "AlertsEnabled" เป็น "false" เช่นเดียวกับในวิธีปิดใช้งานการแจ้งเตือนใน SharePoint

สคริปต์ PowerShell เพื่อปิดใช้งานการแจ้งเตือนในรายการ SharePoint


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Function to Disable All Active Alerts on a Given List
Function Disable-ListAlerts($WebURL, $ListName)
{
    #Get the Web and List objects
    $Web = Get-SPWeb $WebURL
    $List = $web.Lists.TryGetList($ListName)

    #Get All Alerts created in the list - Which are Active
    $ListAlerts = $Web.Alerts | Where-Object {($_.List.Title -eq $List.Title) -and ($_.Status -eq "ON")}

    Write-host "Total Number of Active Alerts Found in the list: $($ListAlerts.Count)" 
    
    #Iterate through each alert and turn it OFF
    foreach($Alert in $ListAlerts)
        {
            $Alert.Status="OFF"
            $Alert.Update()
            write-host "Disabled the Alert' $($Alert.Title)' Created for User '$($Alert.User.Name)'"
        }
         
    #Dispose web object
    $Web.Dispose()
}

#Function to Enable all Disable Alerts on a Given List
Function Enable-ListAlerts($WebURL, $ListName)
{
    #Get the Web and List objects
    $Web = Get-SPWeb $WebURL
    $List = $web.Lists.TryGetList($ListName)

    #Get All Alerts created in the list - Which are in Disabled State
    $ListAlerts = $Web.Alerts | Where-Object { ($_.List.Title -eq $List.Title) -and ($_.Status -eq "OFF")}

    Write-host "Total Number of Disabled Alerts Found in the list: $($ListAlerts.Count)" 
    
    #Iterate through each alert and turn it OFF
    foreach($Alert in $ListAlerts)
        {
            $Alert.Status="ON"
            $Alert.Update()
            write-host "Enabled the Alert' $($Alert.Title)' Created for User '$($Alert.User.Name)'"
        }
         
    #Dispose web object
    $Web.Dispose()
}

#Variables
$WebURL = "https://operations.crescent.com/"
$ListName="Proposal Documents"

#Call the function Appropriately to Disable or Enable Alerts 
Disable-ListAlerts $WebURL $ListName

#To Enable it back
#Enable-ListAlerts $WebURL $ListName
โปรดทราบว่าคุณต้องรอห้านาทีก่อนที่จะเปิดใช้งานการแจ้งเตือนอีกครั้ง (เนื่องจากงานตัวจับเวลาการแจ้งเตือนทันทีค้นหารายการที่แก้ไขในห้านาทีที่ผ่านมา) มิฉะนั้น คุณจะได้รับอีเมลจากการแจ้งเตือนที่ถูกปิดใช้งาน! ดังนั้น: ปิดการใช้งานการแจ้งเตือน - ทำการเปลี่ยนแปลงข้อมูล - รอห้านาที - เปิดใช้งานการแจ้งเตือนอีกครั้ง

โพสต์ที่เกี่ยวข้อง:

  • ปิดใช้งานการแจ้งเตือนจากรายการหรือไลบรารี SharePoint 2010 ด้วย C#
  • ปิดการใช้งานการแจ้งเตือนฉันใน SharePoint 2007/2010/2013 - วิธีปิดการใช้งานการแจ้งเตือนทั้งหมดใน SharePoint
  • สร้าง - แก้ไข - ค้นหา - ลบการแจ้งเตือนของ SharePoint โดยใช้ PowerShell

บทความที่เกี่ยวข้อง