How to Operate SharePoint User Alerts with PowerShell
When you migrate list or site, the user alerts in the site will not be migrated together with the content. Below content can help you to do this task. But please take care of it, if you operate it on Prod environment.
Enable or disable alerts for Web application
## To enable alerts for Web application $SPwebapp=Get-SPWebApplication "http://SharePointSite.com" $SPwebapp.AlertsEnabled = $true $SPwebapp.Update() # To Disable alerts for a Web application $SPwebapp.AlertsEnabled = $false $SPwebapp.Update()
Create Alert in SharePoint using PowerShell
##### Create an New alert for an user ######### $SPsite = Get-SPSite "http://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()
Get all Alerts for an user in SharePoint with PowerShell
##### Display All alerts for a Particular List ######## $SPWeb = Get-SPWeb "http://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()
Create Alerts for All users in a Group
##### Set alerts for all users in the SharePoint Group ###### $SPweb = Get-SPWeb "http://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()
Update SharePoint Alerts using PowerShell
##### Making Changes in Existing Alerts ######## $SPsite = Get-SPSite "http://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() }
Get Alerts for a Particular User
##### Get alerts for a particular user ######### $SPsite = Get-SPSite "http://SharePointSite.com" $SPweb=$SPsite.RootWeb $SPuser=$SPweb.EnsureUser('Domain\Salaudeen') $SPalertCollection=$SPuser.Alerts foreach($alert in $SPalertCollection) { write-host -f Green $alert.Title }
Find All Alerts of an User in Entire Site collection
##### Get the Alerts of Entire Site collection ##### $SPsiteCollection = Get-SPSite "http://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 } }
Delete All SharePoint alerts from a List using powershell
##### Delete All alerts for a specific List ##### $SPweb = Get-SPWeb "http://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) }
Delete user alerts in SharePoint 2010 with PowerShell
##### Remove all alerts for specific user from a Web Application ##### $SPwebApp = Get-SPWebApplication "http://SharePointSite.com" $SpecificUser = "Domain\Salaudeen" foreach ($SPsite in $SPwebApp.Sites) { # get the collection of webs foreach($SPweb in $SPsite.AllWebs) { $alerts = $SPweb.Alerts # if 1 or more alerts for a particular user, Make a note of them by copying their ID to an Array if ($alerts.Count -gt 0) { $myalerts = @() foreach ($alert in $alerts) { if ($alert.User -like $SpecificUser) { $myalerts += $alert } } ### now we have alerts for this site, we can delete them foreach ($alertdel in $myalerts) { $alerts.Delete($alertdel.ID) write-host $alertdel.ID } } } }
To delete all alerts:
$SPweb.Alerts| foreach-object {$web.Alerts.Delete($_.Id)}
Filter the alerts for a single list:
#For for e.g. http://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"
Export User Alerts
$site = Get-SPSite "http://2013portal" $alertResultsCollection = @() foreach ($web in $site.AllWebs) { foreach ($alert in $web.Alerts){ $alertURL = $web.URL + "/" + $alert.ListUrl $alertResult = New-Object PSObject $alertResult |Add-Member -type NoteProperty -name "WebUrl" -Value $web.Url $alertResult | Add-Member -type NoteProperty -name "ListURL" -value $alertURL $alertResult | Add-Member -type NoteProperty -name "AlertTitle" -value $alert.Title $alertResult | Add-Member -type NoteProperty -name "ListUrl" -value $alert.ListUrl $alertResult | Add-Member -type NoteProperty -name "List" -value $alert.List $alertResult | Add-Member -type NoteProperty -name "DeliveryChannel" -value $alert.DeliveryChannels $alertResult | Add-Member -type NoteProperty -name "AlertType" -value $alert.AlertType $alertResult | Add-Member -type NoteProperty -name "EventType" -value $alert.EventType $alertResult | Add-Member -type NoteProperty -name "Frequency" -value $alert.AlertFrequency $alertResult | Add-Member -type NoteProperty -name "AlertTime" -value $alert.AlertTime $alertResult | Add-Member -type NoteProperty -name "SubscribedUser" -value $alert.User $alertResultsCollection += $alertResult } } $site.Dispose() $alertResultsCollection #Export to CSV $alertResultsCollection | Export-CSV C:\Users\sp2013_farm_admin\Desktop\Alerts.csv
Import User Alerts
Import-Csv C:\Users\sp2013_farm_admin\Desktop\Alerts.csv |ForEach-Object{ $webUrl=$_.WebUrl $listTitle=$_.List $alertTitle=$_.AlertTitle $subscribedUser=$_.SubscribedUser $alertType=$_.AlertType $deliveryChannel=$_.DeliveryChannel $eventType=$_.EventType $frequency=$_.Frequency $web=Get-SPWeb $webUrl $list=$web.Lists.TryGetList($listTitle) $user = $web.EnsureUser($subscribedUser) $newAlert = $user.Alerts.Add() $newAlert.Title = $alertTitle $newAlert.AlertType=[Microsoft.SharePoint.SPAlertType]::$alertType $newAlert.List = $list $newAlert.DeliveryChannels = [Microsoft.SharePoint.SPAlertDeliveryChannels]::$deliveryChannel $newAlert.EventType = [Microsoft.SharePoint.SPEventType]::$eventType $newAlert.AlertFrequency = [Microsoft.SharePoint.SPAlertFrequency]::$frequency if($frequency -ne "Immediate"){ $AlertTime=$_.AlertTime $newAlert.AlertTime=$AlertTime } $newAlert.Update() }
How to Operate SharePoint User Alerts with PowerShell的更多相关文章
- SharePoint自动化系列——通过PowerShell创建SharePoint Lists
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 代码如下(保存到本地ps1文件中,右键run with PowerShell即可): Add-PS ...
- SharePoint自动化系列——通过PowerShell创建SharePoint List Items
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 代码如下(保存到本地ps1文件中,右键run with PowerShell即可): Add-PS ...
- SharePoint自动化系列——通过PowerShell创建SharePoint Web
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 代码如下(保存到本地ps1文件中,右键run with PowerShell即可): Add-PS ...
- SharePoint自动化系列——通过PowerShell创建SharePoint Site Collection
通过PowerShell创建SharePoint Site Collection,代码如下: Add-PSSnapin microsoft.sharepoint.powershell function ...
- SharePoint自动化系列——通过PowerShell在SharePoint中批量做数据
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ PowerShell是基于.NET的一门脚本语言,对于SharePoint一些日常操作支持的很好. ...
- SharePoint 解决方案和功能-PowerShell
1. 添加解决方案到SharePoint场 Add-SPSolution "c:\newsolution.wsp" 2. 获取场中的解决方案 Get-SPSolution 3. 获 ...
- 【SharePoint学习笔记】第2章 SharePoint Windows PowerShell 指南
快速了解Windows PowerShell 从SharePoint 2010开始支持PowerShell,仍支持stsadm.exe工具: 可以调用.NET对象.COM对象.exe文 ...
- SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户
这几个月一直在帮客户改需求,部署.我已经心力憔悴,经过一段时间的摸索,我对用PowerShell实现自动化部署也有了一些心得,比如说利用PowerShell导出导入AD中的User.在基于ShareP ...
- [SharePoint 2010] SharePoint 2010 部署、收回和删除解决方案----STSADM和PowerShell
STSADM stsadm -o addsolution –filename c:\bin\CustomerSiteSearch.wsp stsadm -o deploysolution –name ...
随机推荐
- Linq 知识回顾
开篇语 在说LINQ之前必须先说说几个重要的C#语言特性 与LINQ有关的语言特性 隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在fore ...
- android5.0联系人 sort_key改成phonebook_label
项目中用到了联系人根据字母排序,在android4.0手机上是可以的,但是在android4.4以上的手机排序是乱的,一般字母排序都是根据sort_key这个拼音进行排序,而android5.0这个字 ...
- BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习js更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正确, ...
- Html标签的语义化
为了使我们的网站更好的被搜索引擎抓取收录,更自然的获得更高的流量,网站标签的语义化就显得尤为重要.所谓标签语义化,就是指标签的含义. 为了更好的理解标签的语义化,先看下面这个例子: 1 <tab ...
- Stackoverflow/dapper的Dapper-Extensions用法(一)
Dapper-Extensions Dapper Extensions is a small library that complements Dapper by adding basic CRUD ...
- struts2学习笔记--上传单个和批量文件示例
struts2提供了对上传文件的支持,将上传后的文件封装为java.io.File对象,开发者只需要在Action中定义一个File类型的变量,然后直接使用该变量,将它复制到目的目录即可. 单个文件上 ...
- IIS下配置PHP
首先下载Windows的PHP安装包.随后将该包解压至C:\PHP.完成上面的步骤后,将C:\php目录下的php.ini-dist文件改名为php.ini,然后拷到C:\Windows目录下. 用记 ...
- C# EPL USB 指令打印
private void btnPrinter_Click(object sender, EventArgs e) { #region ESC 热敏图像点阵像素点读取打印 //Bitmap bitma ...
- processModel与ASP.NET进程模型
配置 Microsoft Internet 信息服务 (IIS) Web 服务器上的 ASP.NET 进程模型设置.其作用是配置IIS或IIS中的应用程序池(IIS7及以后版本)的安全性,性能,健壮性 ...
- .NET基础架构方法—DataTableToExcel通用方法
p { display: block; margin: 3px 0 0 0; } --> .NET架构基础方法—DataTableToExcel通用方法(NPOI) 今天封装DataTaleTo ...