1. 程式人生 > >SharePoint:如何批量簽入(Check in)文件?

SharePoint:如何批量簽入(Check in)文件?

自從中國國家標準委員會就知識管理模型定位之後,很多企業早些年啟用了“傳統的知識管理”的模式管理企業結構化和非結構化文件,但在現階段,很多企業應其本身的快速發展以及應用趨勢的需要,逐漸尋求和關注顯性知識的“傳統的知識管理”平臺步入關注“知識共享”和“社交學習並重”轉變的解決方案。

通過企業內部的各項評估和調研,多數企業都選擇SharePoint 平臺作為企業內外部社交、協同辦公、知識文件管理系統平臺。

但部分企業IT管理員部署完SharePoint平臺後,由各個部門管理員進行知識等資訊資料架構設定時,往往會遇到一個場景:

使用者需求場景:

部門管理員為了應終端使用者的需求:多人協作編輯文件需個人編輯完成之後,其他人可見再次編輯,管理員為實現需求在若干文件庫啟用“簽入和簽出”功能,比如SoW 文件庫,專案Proposal文件庫等需要多人協作的文件庫。

存在隱患:

但滿足使用者需求的情況下,往往管理員會忽略了將原始的“傳統的知識管理系統”,比如File Server或者FTP Server中的結構化和非結構化文件批量匯入SharePoint特定的文件庫的情況,未在匯入文件前關閉“簽入和簽出”功能,導致文件批量匯入後全部是簽出狀態,意味著其他終端使用者無法訪問這些簽出的文件,若把文件改成簽入狀態,單個文件進行修改,勢必增加管理員的工作量,那麼如何能實現批量簽入的需求呢?

解決方案:

多個企業使用者管理員曾諮詢過我這類問題,這裡分享下解決方案: 用PowerShell的cmdlet對文件進行批量簽入。(本文適用於SharePoint Server 2013,2016,2019)

具體步驟如下:

$WebURL="http://cpshelley:9001/sites/Project_Shelley"
$LibraryName="shelley"

SharePoint:如何批量簽入(Check in)文件?

$Web = Get-SPWeb $WebURL
$CheckedOu$DocLib = $Web.Lists.TryGetList($LibraryName)

SharePoint:如何批量簽入(Check in)文件?

$CheckedOutFiles = $DocLib.Items | Where-Object { $_.File.CheckOutStatus -ne "None"}

SharePoint:如何批量簽入(Check in)文件?

ForEach($item in $CheckedOutFiles) { $DocLib.GetItemById($item.Id).file.CheckIn("Checked in by cp01\administrator") }

SharePoint:如何批量簽入(Check in)文件?

說明:Checked in by是指用哪個使用者做批量簽入,使用管理員賬戶。

希望本文對大家有幫助,若大家在使用和操作上遇到其他問題,歡迎線下討論和諮詢。