Logo

Create – Edit – Find – Delete SharePoint Alerts using PowerShell

photo

2024年01月22日

Welcome to another PowerShell walk-through. In this article I’m exploring Management of SharePoint Alerts using PowerShell!

Enable or disable alerts for Web application

## To enable alerts for Web application
 
$SPwebapp=Get-SPWebApplication "https://SharePointSite.com"
$SPwebapp.AlertsEnabled = $true
$SPwebapp.Update()
 
# To Disable alerts for a Web application
$SPwebapp.AlertsEnabled = $false
$SPwebapp.Update()


#Read more: https://www.sharepointdiary.com/2011/11/managing-alerts-using-powershell.html#ixzz8PXZ2TVL0

Create Alert in SharePoint using PowerShell

##### Create a New alert for a user #########
 
$SPsite = Get-SPSite "https://SharePointSite.com"
$SPweb=$SPsite.Rootweb
$SPlist=$SPweb.lists["Shared documents"]
$SPuser = $SPweb.EnsureUser('Domain\Salaudeen')
$SPnewAlert = $SPuser.Alerts.Add()
$SPnewAlert.Title = "My Custom Alert"
$SPnewAlert.AlertType=[Microsoft.SharePoint.SPAlertType]::List
$SPnewAlert.List = $SPlist
$SPnewAlert.DeliveryChannels = [Microsoft.SharePoint.SPAlertDeliveryChannels]::Email
$SPnewAlert.EventType = [Microsoft.SharePoint.SPEventType]::Add
$SPnewAlert.AlertFrequency = [Microsoft.SharePoint.SPAlertFrequency]::Immediate
$SPnewAlert.Update()
$SPweb.Dispose()
$SPSite.Dispose()


#Read more: https://www.sharepointdiary.com/2011/11/managing-alerts-using-powershell.html#ixzz8PXZ8chxj

Get all alerts from a SharePoint List with PowerShell:

##### Display All alerts for a Particular List ########
 
$SPWeb = Get-SPWeb "https://SharePointSite.com"
#Relative URL of list/document library. For lists "Lists/Tasks"
$SPListURL = "Shared Documents" 
foreach($alert in $SPWeb.Alerts)
{
    if($alert.ListUrl -eq $SPListUrl)
    {          
            "User Name    - " + $alert.User.Name
            "Title        - " + $alert.Title
            "Frequency    - " + $alert.AlertFrequency
            "Delivery Via - " + $alert.DeliveryChannels
            "Change Type  - " + $alert.eventtype
            Write-Host "=================================="
    }
}
$SPweb.Dispose()


#Read more: https://www.sharepointdiary.com/2011/11/managing-alerts-using-powershell.html#ixzz8PXZFzEkd

Create Alerts for All users in a Group:

##### Set alerts for all users in the SharePoint Group ######
 
$SPweb = Get-SPWeb "https://SharePointSite.com"
$SPgroup = $SPweb.Groups["SharePoint Owners"]
$SPlist = $SPweb.Lists["Shared Documents"]
foreach ($SPuser in $SPgroup.Users){
     $alert = $SPuser.Alerts.Add()
     $alert.Title = "My Alert"
     $alert.AlertType = [Microsoft.SharePoint.SPAlertType]::List
     $alert.List = $SPlist
     $alert.DeliveryChannels = [Microsoft.SharePoint.SPAlertDeliveryChannels]::Email
     $alert.EventType = [Microsoft.SharePoint.SPEventType]::Add
     $alert.AlertFrequency = [Microsoft.SharePoint.SPAlertFrequency]::Immediate
     $alert.Update()
}
$SPweb.Dispose()


#Read more: https://www.sharepointdiary.com/2011/11/managing-alerts-using-powershell.html#ixzz8PXZKSeh9

Update SharePoint Alerts using PowerShell

#####  Making Changes in Existing Alerts ########
$SPsite = Get-SPSite "https://SharePointSite.com"
$SPweb=$SPsite.RootWeb
$SPuser=$SPweb.EnsureUser('Domain\Salaudeen')
$SPalertCollection=$SPuser.Alerts
foreach($alert in $SPalertCollection)
{
   $alert.AlertFrequency = [Microsoft.SharePoint.SPAlertFrequency]::Daily
   $alert.Update()
}


#Read more: https://www.sharepointdiary.com/2011/11/managing-alerts-using-powershell.html#ixzz8PXZQ3OKW

Get Alerts for a Particular User

##### Get alerts for a particular user #########
$SPsite = Get-SPSite "https://SharePointSite.com"
$SPweb=$SPsite.RootWeb
$SPuser=$SPweb.EnsureUser('Domain\Salaudeen')
$SPalertCollection=$SPuser.Alerts
foreach($alert in $SPalertCollection)
{
   write-host -f Green $alert.Title
}


#Read more: https://www.sharepointdiary.com/2011/11/managing-alerts-using-powershell.html#ixzz8PXZSYmZD

Find All Alerts of a User in Entire Site collection

##### Get the Alerts of Entire Site collection #####
$SPsiteCollection = Get-SPSite "https://SharePointSite.com"
 
# Iterate through all Webs in the Site Collection
foreach($SPweb in $SPsiteCollection.AllWebs)
 {
   foreach($alert in $SPweb.Alerts)
    {
        Write-Host "Alerts List :" $alert.ListUrl
        Write-Host "Alerts Title :" $alert.title
        write-host "Subscribed User: " $alert.user
     }
 }


#Read more: https://www.sharepointdiary.com/2011/11/managing-alerts-using-powershell.html#ixzz8PXZYEknP

Delete All SharePoint alerts from a List using PowerShell

##### Delete All alerts for a specific List #####
 
$SPweb = Get-SPWeb "https://SharePointSite.com"
$SPlist = $SPweb.lists["Shared Documents"]
$IDS = ""
foreach($alert in $spweb.alerts)
{
    if($alert.ListID -eq $SPlist.ID)
    {
        $IDS += $alert.ID.tostring() + "|"
    }
    write-host -nonewline "*"
}
write-host "deleting..."
foreach($s in $IDS.Split("|"))
{
    write-host -nonewline "*"
    $spweb.alerts.delete([GUID]$s)
}


#Read more: https://www.sharepointdiary.com/2011/11/managing-alerts-using-powershell.html#ixzz8PXZc70EE

Delete user alerts in SharePoint with PowerShell

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
 
#Configuration Parameters
$SiteURL="https://portal.crescent.com/ "
$Email = "salaudeen.rajack@crescent.com"
$Subject = "Test Email from SharePoint"
$Body = "Test Email Body"
 
#Get the Web
$Web = Get-SPWeb $SiteURL
 
#Send Email using SPUtility SendEmail method
[Microsoft.SharePoint.Utilities.SPUtility]::SendEmail($Web ,0,0,$Email,$Subject,$Body)


#Read more: https://www.sharepointdiary.com/2016/09/how-to-test-outgoing-emails-in-sharepoint-using-powershell.html#ixzz8PXSqQTxT

Finally, some minimized code:

To delete all alerts from a site:
$SPweb.Alerts| foreach-object {$web.Alerts.Delete($_.Id)}

Filter the alerts for a single list:
#For for e.g. https://SharePoint.com/site/Assets”
$SPweb.Alerts| where-object {$_.ListUrl -like “Assets”} 

Find all the Alerts for a specific user across the web:
# ? is the alias for where-object cmdlet
$web.Alerts | ? {$_.UserId -like “Domain\Salaudeen”}

Get all the alerts for a user across the entire site collection:
$site.AllWebs | select -expand Alerts | ? {$_.UserId -like “Domain\Salaudeen”

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
所有附件
该文章没有附件.
本文为原创文章,请注意保留出处!

留言板

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

热门文章

Windows Server IIS+ARR反向代理(配置反向代理服务器) 1.概念说明:反向代理反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相...WindowsServerIIS+ARR反向代理(配置反向代理服务器) 作者:Pastore Antonio
1581 浏览量
ffmpeg 生成水印 1:先要配置ffmpeg的滤镜:参考:https://www.jianshu.com/p/9d24...ffmpeg生成水印 作者:Pastore Antonio
1508 浏览量
C#中List的FindAll方法的正确打开方式 初略的介绍一种常见的List写法,这种写法在3.0以后其实是很简单的,但是在2.0左右的系统运用中还...C#中List的FindAll方法的正确打开方式 作者:Pastore Antonio
1467 浏览量
IntelliJ IDEA 代码字体大小的快捷键设置放大缩小(很实用)(图文详解) 这是在设置IntelliJIDEA...IntelliJIDEA代码字体大小的快捷键设置放大缩小(很实用)(图文详解) 作者:Pastore Antonio
1461 浏览量
Navicat Premium 12.0.22 安装与破解 一、安装  NavicatPremium12.0.22的下载链接:https://pan.ba...NavicatPremium12.0.22安装与破解 作者:Pastore Antonio
1447 浏览量