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

[玩转系统] SharePoint Online:如何使用 PowerShell 签入文档?

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

SharePoint Online:如何使用 PowerShell 签入文档?


SharePoint 中的签出和签入功能可避免典型协作环境中的冲突,在这种环境中,多个用户可能会尝试同时编辑同一文档。完成更改后,即使保存了文档,您也必须重新签入文档以使所有其他用户都可以使用更改。在 SharePoint Online 中签入文档是一个简单的过程,可以通过 Web 浏览器 UI 或 PowerShell 只需几个步骤即可完成。

如何在 SharePoint Online 中签入文档?

在 SharePoint Online 中按照以下步骤签入已签出的文件。

  1. 导航到保存签出文件的文档库。选择要签入的文档。
  2. 在功能区中,单击“文件”选项卡,然后单击“打开和签出”组中的“签入”。
  3. 在“签入”对话框中,对于“签入文件后保持文件签出”选项单击“否”。
  4. 单击“确定”。

如果您签入文档但保留它以签出,则其他用户可以看到您的最新更改,而您可以继续处理文档的其余更改。

[玩转系统] SharePoint Online:如何使用 PowerShell 签入文档?

如果没有“签入”选项,则表示该文档当前尚未签出。在现代体验中,您可以选择签出的文件>>右键单击并从上下文菜单或工具栏中选择“签入”。

[玩转系统] SharePoint Online:如何使用 PowerShell 签入文档?

虽然这可能会有所帮助,但如果您想自动化此过程怎么办? PowerShell 就是您的最佳选择!

用于签入文档的 SharePoint Online PowerShell CSOM

让我向您展示如何使用 PowerShell 在 SharePoint Online 中签入文档:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
  
#Function to Check if file exists in given URL
Function Checkin-Document($SiteURL, $FileRelativeURL, $Credentials)
{

    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = $Credentials

    Try {
        #Try to get the File from URL
        $File = $Ctx.web.GetFileByServerRelativeUrl($FileRelativeURL)
        $Ctx.Load($File)
        $Ctx.ExecuteQuery()
        
        #check if the file is checked out
        If($File.CheckOutType -eq "None")
        {
            write-host "Document is not checked out Already!" -f Red
            break
        }
        #Checkin the document
        $File.CheckIn([string]::Empty,[Microsoft.SharePoint.Client.CheckinType]::MajorCheckIn)
        #Checkin Types: MajorCheckIn,MinorCheckIn,OverwriteCheckIn

        $Ctx.ExecuteQuery()

        write-host "Document has been checked-in successfully!" -f Green
    }
    Catch {
        write-host -f Red "Error checking-in Document!" $_.Exception.Message
    }
}

#Set Variables for Site URL, List Name and Column Name
$SiteURL= "https://crescent.sharepoint.com/sites/sales/"
$FileRelativeURL="/sites/Sales/Shared%20Documents/Legal%20Template.xssn"

#Setup Credentials to connect
$Cred = Get-Credential
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)

#Call the function to Checkin file
Checkin-Document -SiteURL $SiteURL -FileRelativeURL $FileRelativeURL -Credentials $Cred

用于签入文件的 SharePoint Online PowerShell

上面的脚本从 URL 获取文件。或者,您可以从项目 ID 获取文件并签入。这是在 SharePoint Online 中签入文件的另一种 PowerShell 方法。


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
  
#Set Variables for Site URL, Library Name and Item ID
$SiteURL= "https://Crescent.sharepoint.com/sites/sales/"
$LibraryName="Documents"
$ItemID="4"

#Setup Credentials to connect
$Cred = Get-Credential
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)

#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Cred

#Get the web, List, Item adn File
$Web=$Ctx.Web
$List=$web.Lists.GetByTitle($LibraryName)
$Item=$list.GetItemById($ItemID)
$File=$Item.File

#Get the File to context
$Ctx.Load($File)
$Ctx.ExecuteQuery()
        
#determine if sharepoint document is checked out
If($File.CheckOutType -eq "None")
{
    write-host "Document is not checked out Already!" -f Red
}
else
{
    #Check in the file: sharepoint online force check in powershell 
    $File.CheckIn("Checked-in from PowerShell",[Microsoft.SharePoint.Client.CheckinType]::MajorCheckIn)
    $Ctx.ExecuteQuery()
    
    write-host "Document has been checked-in successfully!" -f Green
}

SharePoint Online:用于签入文档的 PnP PowerShell

PnP PowerShell 使其变得更加简单!以下是用于在 SharePoint Online 中签入文件的 PowerShell:


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$FileRelativeURL ="/Team Documents/Project Proposal.docx"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

#Check In a Document
Set-PnPFileCheckedIn -Url $FileRelativeURL -CheckinType MajorCheckIn -Comment "Checked In at $(Get-Date)" 

您可以在版本历史页面看到签入结果:

[玩转系统] SharePoint Online:如何使用 PowerShell 签入文档?

使用 PowerShell 批量检查 SharePoint Online 文件:

要使用 PowerShell 在 SharePoint Online 中签入多个文件,请使用:SharePoint Online:PowerShell 签入所有文档

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

取消回复欢迎 发表评论:

关灯