Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
You can use the following PowerShell script to add a remote event receiver in SharePoint 2013/2016:
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Site & context
$siteUrl = "https://siteurl/"
$listTitle = "listTitle"
$clientContext = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)
$clientContext.Credentials = New-Object System.Net.NetworkCredential("domain\user", "pass")
function addListItemRemoteEventReceiver([Microsoft.SharePoint.Client.ClientContext]$context, [string]$listTitle,
[Microsoft.SharePoint.Client.EventReceiverType]$eventType, [Microsoft.SharePoint.Client.EventReceiverSynchronization]$synchronization,
[string]$receiverName, [string]$receiverUrl, [string]$receiverAssemblyName, [string]$receiverClassName)
{
$list = $context.Web.Lists.GetByTitle($listTitle);
$context.Load($list)
$eventReceivers = $list.EventReceivers
$context.Load($eventReceivers)
$context.ExecuteQuery()
$newRER = New-Object Microsoft.SharePoint.Client.EventReceiverDefinitionCreationInformation
$newRER.EventType = $eventType
$newRER.ReceiverName = $receiverName
$newRER.ReceiverClass = $receiverClassName
$newRER.ReceiverAssembly = $receiverAssemblyName
$newRER.ReceiverUrl = $receiverUrl
$newRER.Synchronization = $synchronization
$newRER.SequenceNumber = 100
try
{
$list.EventReceivers.Add($newRER)
$list.Update()
$context.ExecuteQuery()
Write-Host "Receiver added successfully"
}
catch
{
Write-Error "Failed to add receiver - error: $_"
}
}
# define ER attributes
$receiverName = "OnDocumentAdding"
$receiverClassName = ""
$receiverEventType = [Microsoft.SharePoint.Client.EventReceiverType]::ItemAdding
$receiverSynchronization = [Microsoft.SharePoint.Client.EventReceiverSynchronization]::Synchronous
$receiverUrl = "https://rer-url/Services/DocumentEventReceiver.svc"
$receiverAssemblyName = ""
# now call function..
addListItemRemoteEventReceiver $clientContext $listTitle $receiverEventType $receiverSynchronization $receiverName $receiverUrl $receiverAssemblyName $receiverClassName