SharePoint PowerShell 啟動工作流
前言
最近,有個需求,就是需要批量更新列表內容,平時這些操作,都用powershell去完成,但是,powershell需要在伺服器上操作,而伺服器許可權需要通過客戶的層層把關,所以,這次就考慮不用命令了,而改用SharePoint網站工作流,然後,用powershell命令去建立任務計劃。
這樣,以後有需求修改,直接在客戶端就能做了,而任務計劃,是始終不會變的。
1.建立網站工作流,這個就比較簡單了,我們就不多少了,直接在SharePoint Designer裡幹就好了;
2.啟動網站工作流的PowerShell程式碼段,這個顯然是本文的重中之重;
# SharePoint.Workflow.Start-SPSiteWorkflow param ( [string]$Url = "http://sharepoint/demos/workflow", [string]$Workflow = "Sample Site Workflow" ) Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") # get the workflow assocation from the target site/web $site = Get-SPSite $Url $culture = [System.Globalization.CultureInfo]::InvariantCulture $wfAssociation = $site.RootWeb.WorkflowAssociations.GetAssociationByName($Workflow,$culture) if ( $wfAssociation ) { # initialize and optionally update association data $assocData = $wfAssociation.AssociationData # start the workflow $wfRunOption = [Microsoft.SharePoint.Workflow.SPWorkflowRunOptions]::Asynchronous $site.WorkflowManager.StartWorkflow($site, $wfAssociation, $assocData,$wfRunOption) } else { Write-Error "Workflow association not found on target web site." }
3.儲存成ps1檔案,然後,建立一個任務計劃定時去執行就好了;
4.建立任務計劃可以參考:
https://www.cnblogs.com/jianyus/p/10341253.html
結束語
SharePoint的好處就在於是個平臺,很多功能有多種多樣的方式來完成,而我們可以根據需求,選中最最適合我們場景的那一個。
當然,這些就需要我們對SharePoint有這深入的瞭解,方方面面的功能都很熟悉了。