如何使用powershell/c#在SharePoint中列出所有2013年的工作流

本文关键字:2013年 工作流 powershell 何使用 SharePoint | 更新日期: 2023-09-27 18:12:13

嗨,有没有办法检索所有2013年的工作流程到SharePoint网站?我们有这个问题关于我们的服务器,其中工作流管理器2013使用我们所有的服务器资源,导致100%的CPU使用率,我们需要知道什么是由我们的用户创建的工作流导致这一点。

到目前为止,我有以下代码来检索所有wf2010到我们下面的站点:

Add-PSSnapin Microsoft.SharePoint.PowerShell -ea 0
$site=Get-SPSite("mysite dot com");
#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 | Sort-Object
 }
 }
 }
 }
}
foreach($web in $site.AllWebs)
{
 foreach($list in $web.Lists)
 {
 foreach($wf in $list.WorkflowAssociations)
 {
 if ($wf.Name -notlike "*Previous Version*")
 {
 $workflowcount += 1
 }
 }
 }
}
Get-Workflows | Export-csv C:'Users'Documents'rey.csv
"Workflow Count " + $workflowcount >> C:'Users'Documents'rey.csv
$site.Dispose()

任何帮助都是感激的。

谢谢!

如何使用powershell/c#在SharePoint中列出所有2013年的工作流

您可以尝试在一个站点中获取所有2013年的工作流。

$web = Get-SPWeb -identity $url
$wfm = New-object Microsoft.SharePoint.WorkflowServices.WorkflowServicesManager($web)
$defSevice = $wfm.GetWorkflowDeploymentService()
$wfDefs = $defSevice.EnumerateDefinitions($false)
foreach ($wfDef in $wfDefs){
$wfDef.properties
}

wfDef美元。属性将列出与工作流相关的所有属性。