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是指用哪个用户做批量签入,使用管理员账户。

希望本文对大家有帮助,若大家在使用和操作上遇到其他问题,欢迎线下讨论和咨询。

猜你喜欢

转载自blog.51cto.com/13637423/2337981