Cancel multiple SharePoint workflows using PowerShell

How can I cancel all running workflows in a SharePoint list (2010)?

I found this script through technet.

http://social.technet.microsoft.com/Forums/en-US/sharepoint2010programming/thread/d3913265-9712-4e61-9e38-1f9b78c8f718/

CODE:

using (SPSite oSite = new SPSite("<your url>")) { foreach (SPWeb oWeb in oSite.AllWebs) { oWeb.AllowUnsafeUpdates = true; // stop list workflows foreach (SPList list in oWeb.Lists) { foreach (SPListItem oItem in list.Items) { foreach (SPWorkflow workflow in oItem.Workflows) { SPWorkflowManager.CancelWorkflow(workflow); } } } // stop site workflows foreach (SPWorkflow workflow in oWeb.Workflows) { SPWorkflowManager.CancelWorkflow(workflow); } oWeb.AllowUnsafeUpdates = false; oWeb.Dispose(); } } 

Many thanks for your help.

+6
source share
4 answers

Do it in one shot.

I changed it so that it runs on a specific list on a specific network.

 #Site URL $web = Get-SPWeb "http://urlforsite.com"; $web.AllowUnsafeUpdates = $true; #List Name $list = $web.Lists["ListName"]; # Iterate through all Items in List and all Workflows on Items. foreach ($item in $list.Items) { foreach ($wf in $item.Workflows) { #Cancel Workflows [Microsoft.SharePoint.Workflow.SPWorkflowManager]::CancelWorkflow($wf); } } $web.Dispose(); 

Worked great for me. Let me know if this works for you.

+11
source

This script was useless to me. I am making changes to allow me to cancel all workflows in one list or only one workflow and thought that I also posted it here:

  #Parameters param($listToCancel,$WfToCancel) #Site URL $web = Get-SPWeb "http://mydomain.com"; $web.AllowUnsafeUpdates = $true; #List Name $list = $web.Lists[$listToCancel]; #Add wildcards to Wf variable $WildcardWfToCancel = "*"+$WfToCancel+"*"; # Iterate through all Items in List and all Workflows on Items. foreach ($item in $list.Items) { foreach ($wf in $item.Workflows) { #Test for workflow complete and match criteria if (($wf.ParentAssociation.InternalName -like $WildcardWfToCancel) -and ($wf.IsCompleted -ne $true)) { #Show status and cancel Workflows write-Host $wf.ItemName -nonewline; write-host " " -nonewline; write-host $wf.ParentAssociation.InternalName; Write-Host " Status " -nonewline; Write-host $wf.InternalState; [Microsoft.SharePoint.Workflow.SPWorkflowManager]::CancelWorkflow($wf); } } } $web.Dispose(); 
+2
source

Try this (simple "translate" C # to powershell):

 $site = Get-SPSite "<your url>"; $site.AllWebs | foreach { $web = $_; $web.AllowUnsafeUpdates = $true; # stop list workflows $web.Lists | foreach { $list = $_; $list.Items | foreach { $item = $_; $item.Workflows | foreach { $wf = $_; [Microsoft.SharePoint.Workflow.SPWorkflowManager]::CancelWorkflow($wf); } } } # stop site workflows $web.Workflows | foreach { $wf = $_; [Microsoft.SharePoint.Workflow.SPWorkflowManager]::CancelWorkflow($wf); } $web.AllowUnsafeUpdates = $false; $web.Dispose(); } $site.Dispose(); 
0
source

here is my modified script:

 $web = Get-SPWeb "http://site/subsite"; $web.allowUnsafeUpdates = 'true'; # stop list workflows $web.Lists | foreach { $list = $_; $list.Items | foreach { $item = $_; $item.Workflows | foreach { $wf = $_; [Microsoft.SharePoint.Workflow.SPWorkflowManager]::CancelWorkflow($wf); } } } $web.allowUnsafeUpdates = 'false'; $web.Dispose(); 

and this is the error I get (I use the German localized version of the server and sharepoint):

 Fehler bei der Enumeration einer Auflistung: Collection was modified; enumeration operation may not execute.. Bei C:\stopwf.ps1:7 Zeichen:3 + <<<< $web.Lists | foreach { + CategoryInfo : InvalidOperation: (Microsoft.Share...on+SPEnumerator:SPEnumerator) [], RuntimeException + FullyQualifiedErrorId : BadEnumeration 

The runnig script user is the administrator on the machine, he himself, sitecollection admin and sql-admin. I also created a child node with this account, so I don't think access problems would be a problem.

I found this answer ( Differences between PowerShell and C # when listing a collection ), but I don’t understand how to use this information for me ?!

0
source

Source: https://habr.com/ru/post/898268/


All Articles