Mediante este Script PowerShell podemos realizar un inventario de Workflows en Sharepoint 2010 o 2013
He incluido la opción de sacarlo por OutGrid o por CSV
También se ha extraído el AssemblyName y el ClassName del XML de configuración, de forma que permite localizar los proyectos/componentes que los contienen.
Para filtrar los workflows de aprobación (Nativos) del listado se ha usado un -NotLike, podemos usar esta linea para filtrar otros o localizar uno concreto
#List all workflows in farm
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
function ListWF()
{
#Grab all webs
Get-SPSite -Limit All | % {$webs += $_.Allwebs}
if($webs.count -ge 1)
{
foreach($web in $webs)
{
#Grab all lists in the current web
$lists = $web.Lists
foreach($list in $lists)
{
#Get all workflows that are associated with the current list
foreach($listassociation in $list.WorkflowAssociations)
{
if( $listassociation.name -NotLike "Aprobaci*")
{
[xml]$xmlconf=$listassociation.BaseTemplate.xml;
$data = @{
"Lista" = $List.Title;
"Web" = $web.Url;
"NombreAsociacion" = $listassociation.name;
"Name" =$listassociation.BaseTemplate.Name;
"ID" =$listassociation.BaseTemplate.ID;
"CodeBesideClass" =$xmlconf.WorkflowTemplate.WorkFlowTemplateIdSet.CodeBesideClass;
"CodeBesideAssembly" =$xmlconf.WorkflowTemplate.WorkFlowTemplateIdSet.CodeBesideAssm;
}
New-Object PSObject -Property $data
}
}
}
}
$web.Dispose()
}
}
ListWF | Out-GridView
#$csvFilePath = "C:\Workflows_Listado.csv"
#ListWF | Export-Csv -NoTypeInformation -Path $csvFilePath