2016-10-10 44 views
1

こんにちは、すべての2013年のワークフローをSharePointサイトに取得する方法はありますか? WorkFlow Manager 2013が100%CPU使用率をもたらすすべてのサーバーリソースを使用しているため、ユーザーが作成したワークフローが何であるかを知る必要があるサーバーに関しては、この問題があります。今のようpowershell/cを使用してSharePointですべての2013ワークフローを一覧表示する方法#

私は以下の私たちのサイトにすべてのWF 2010を取得するためのコードの下にあります

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() 

すべてのヘルプは高く評価されます。

ありがとうございます!

答えて

1

サイト内で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.propertiesは、ワークフローに関するすべてのプロパティを一覧表示します。関連リストのGUIDを与えるRestrictToScopeのように。

関連する問題