How to Start a SharePoint Workflow using PowerShell?
Requirement is: To start a specific Workflow on All documents in a document library.
Solution: Lets use PowerShell to Start workflow Programmatically on all Items in a Document Library! After making sure, Manual start is enabled for the workflow:
Solution: Lets use PowerShell to Start workflow Programmatically on all Items in a Document Library! After making sure, Manual start is enabled for the workflow:
# For MOSS 2007 compatibility [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") #Region MOSS2007-CmdLets Function global:Get-SPSite() { Param( [Parameter(Mandatory=$true)] [string]$SiteCollURL ) if($SiteCollURL -ne '') { return new-Object Microsoft.SharePoint.SPSite($SiteCollURL) } } Function global:Get-SPWeb() { Param( [Parameter(Mandatory=$true)] [string]$SiteURL ) $site = Get-SPSite($SiteURL) if($site -ne $null) { $web=$site.OpenWeb(); } return $web } #EndRegion #Get the Web $web = Get-SPWeb "http://sharepoint.company.com" #Get the List $list=$web.Lists["Review Documents"] #Get Workflow Manager $WFManager=$Web.site.WorkFlowManager #Get the specifi workflow, Associated with the list $WFAssociation = $list.WorkFlowAssociations | where {$_.Name -eq "Approval Workflow"} #Start Workflow on Each List Item foreach ($item in $list.Items) { $WFManager.StartWorkFlow($item,$WFAssociation,$WFAssociation.AssociationData) write-host "Started Workflow on $($item.Name)" } $web.Dispose()
Using this method, We can Start/Stop/Cancel even Nintex Workflows!
Exception calling "StartWofkflow" with "3" argument(s): "Unable to synchronously deliver start event via a manual start workflow.: $$WFManager.StartWorkflow($item......
ReplyDeleteTry adding the user who runs this code with "FULL Control" access rights to the site!
DeleteDoes this work on SharePoint 2013
ReplyDelete