当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 签入 SharePoint 库中的所有文档

作者:精品下载站 日期:2024-12-14 14:01:29 浏览:14 分类:玩电脑

使用 PowerShell 签入 SharePoint 库中的所有文档


要求:签入在 SharePoint 文档库中签出的所有文件。

如何在 SharePoint 2016 中签入所有签出的文档?

SharePoint 2016 通过提供上下文相关的功能区按钮来批量签入多个文件,从而使操作变得更简单。只需选择所有已检查的文件,然后单击功能区中的“签入”按钮即可。

[玩转系统] 使用 PowerShell 签入 SharePoint 库中的所有文档

但是,当您有任何未分配默认值的必填字段时,此方法不起作用!

使用 PowerShell 签入 SharePoint 库中的所有文档

当您执行多个文件上传(批量上传或通过资源管理器视图)时,并且您所需的列没有任何默认值,您的文件将自动检出。当您错过库中的任何必填字段时,“签入”按钮将不起作用。

[玩转系统] 使用 PowerShell 签入 SharePoint 库中的所有文档

所以,我们的解决方案是:PowerShell!

用于签入库中所有文档的 PowerShell 脚本:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Variables for Site URL and Library Name
$WebURL="https://sharepoint.crescent.com/sites/sales"
$LibraryName="Proposal Documents"

#Get Site and Library
$Web = Get-SPWeb $WebURL
$DocLib = $Web.Lists.TryGetList($LibraryName)

#Get all Checked out files
$CheckedOutFiles = $DocLib.Items | Where-Object { $_.File.CheckOutStatus -ne "None"} 

#Check in All Checked out Files in the library
ForEach($item in $CheckedOutFiles)
{ 
    #If you want to update fields
    #$item["Field"] = "value"
    #$item.SystemUpdate()
 
    #check in file programmatically     
    #$item.TakeoverCheckout() 
    $DocLib.GetItemById($item.Id).file.CheckIn("Checked in by Admin") 
    write-host "File:'$($item.Name)' has been checked in!"        
}

如果要对整个 SharePoint Web 应用程序中的所有库执行此操作,请使用:查找所有签出的文件并将其签入回来

无需通过 PowerShell 提供所需字段值即可签入文件!

若要使用 PowerShell 在 SharePoint Online 中批量签入多个文件,请使用:SharePoint Online:使用 PowerShell 签入多个文件

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯