Manage SharePoint alerts and subscribes using PowerShell
Alerts in SharePoint is a powerful tool for users but about a nightmare for administrator. It’s not comfortable for administrator to see user subscribes and manage them.
For example, it’s really impossible for administrator to change a subscriber using web interface. May be there are third party tools but if you don’t have them right now and the changes you should do immediately?
I was faced with such a situation and I decided to use powershell to change a subscriber on SharePoint site changes. My result is below. Of course, you can modify it on your own risk 🙂
#Change subscriber in SharePoint Remove-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue cls $url = "http://spdev" $spweb = Get-SPWeb $url foreach ($alert in $spweb.Alerts) { if($alert.get_User().Name -match "old user Fullname") { $newuser = Get-SPUser("domain\new-user-login") -Web $url $alert.User = $newuser $alert.Update() } }
Another problem with subscribers was when I updated a test environment and I didn’t want users to receive messages about their subscribes. I wanted just to remove them. My script is similar with the above one, but has some differences.
#Remove subscribes Remove-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue cls $url = "http://spdev" $spweb = Get-SPWeb $url for ($i= $spweb.Alerts.Count; $i -ge 0; $i--) { $alert = $spweb.Alerts[$i] Write-Host 'Deleting ' $alert.ID $spweb.Alerts.Delete($alert.ID) }