We know that we can see a list of user alerts from site settings > User alerts. But it has some limitations like a number of users. It won't provide the list of all users once it crossed the specified limit. So to export all user alerts, we need to write either PowerShell or some console application.
Here are steps to get all alerts from SharePoint online site. You can tweak the code according to your need.
1) Open Visual Studio 2013
2) Create Window console project
3) Open Tools → NuGet Package Manager → Package Manager Console
4) Run following command in the console
Install-Package Microsoft.SharePointOnline.CSOM -Version 16.1.7317.12005) Add following code in the main class
using Microsoft.SharePoint.Client; using System; using System.Collections.Generic; using System.Linq; using System.Security; using System.Text; using System.Threading.Tasks; namespace Alerts { class Program { static void Main(string[] args) { string targetSiteURL = @ "https://myclassbook.sharepoint.com/sites/test123"; var login = "mayureshjoshi@myclassbook.onmicrosoft.com"; var password = "XXX"; var securePassword = new SecureString(); foreach(char c in password) { securePassword.AppendChar(c); } SharePointOnlineCredentials onlineCredentials = new SharePointOnlineCredentials(login, securePassword); ClientContext ctx = new ClientContext(targetSiteURL); ctx.Credentials = onlineCredentials; var users = ctx.Web.SiteUsers; ctx.Load(users); ctx.ExecuteQuery(); var csv = new StringBuilder(); foreach(var user in users) { var alerts = user.Alerts; ctx.Load(alerts); ctx.ExecuteQuery(); if (alerts.Count > 0) { csv.AppendLine(string.Format("Display alerts for {0}({1})", user.Title, user.LoginName)); foreach(var alert in alerts) { csv.AppendLine(string.Format("Frequency:{0}, Delivery Method(s):{1}, AlertName:{2}", alert.AlertFrequency, alert.DeliveryChannels, alert.Title)); } } } System.IO.File.WriteAllText("C:\\Alerts\\alerts.csv", csv.ToString()); } } }
6) Change Url and login details. Resolve references
7) Add "Alerts" folder in C: drive
8) Run code
0 Comments