How to Start a SharePoint Workflow using PowerShell?

Requirement is: To start a specific Workflow on All documents in a document library.

Solution: let’s use PowerShell to Start workflow Programmatically on all Items in a Document Library! After making sure, “Manual start” is enabled for the workflow.

PowerShell script to start SharePoint 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 "https://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!

Salaudeen Rajack

Salaudeen Rajack - Information Technology Expert with Two-decades of hands-on experience, specializing in SharePoint, PowerShell, Microsoft 365, and related products. He has held various positions including SharePoint Architect, Administrator, Developer and consultant, has helped many organizations to implement and optimize SharePoint solutions. Known for his deep technical expertise, He's passionate about sharing the knowledge and insights to help others, through the real-world articles!

4 thoughts on “How to Start a SharePoint Workflow using PowerShell?

  • Does this work on SharePoint 2013

    Reply
  • Exception calling “StartWofkflow” with “3” argument(s): “Unable to synchronously deliver start event via a manual start workflow.: $$WFManager.StartWorkflow($item……

    Reply
    • Try adding the user who runs this code with “FULL Control” access rights to the site!

      Reply
    • Hi! I also came across this same issue… did you ever find a fix?

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *