PowerShell to find all available workflows in site collection & Subsites with their names & location.
$site = Get-SPSite(" http://sharepoint.site.com/sites/abc "); $site.AllWebs | foreach { $_.Lists | foreach { $_.WorkflowAssociations | foreach { write-host "Site URL :" $_.ParentWeb.Url ", List Name :" $_.ParentList.Title ", Workflow Name :" $_.Name } } } $siteurl=" http://sharepoint.site.com/sites/abc " $site=Get-SPSite(" http://sharepoint.site.com/sites/abc "); #Initialize Workflow Count variable $workflowcount = 0 #Foreach loop to loop through all webs, and lists with workflow associations, and exclude workflows that have previous versions and write findings to .csv file. function Get-Workflows() { foreach($web in $site.AllWebs) { foreach($list in $web.Lists) { foreach($wf in $list.WorkflowAssociations) { if ($wf.Name -notlike "*Previous Version*") { $hash = @{"[URL]"=$web.Url;"[List Name]"=$list.Title;"[Workflow]"=$wf.Name} New-Object PSObject -Property $hash ...