SharePoint Online: ¿Cómo registrar un documento usando PowerShell?
La función Proteger y Proteger en SharePoint evita conflictos en entornos de colaboración típicos, donde varios usuarios pueden intentar editar el mismo documento simultáneamente. Cuando haya terminado de realizar cambios, debe volver a registrar el documento para que los cambios estén disponibles para todos los demás usuarios, incluso si el documento está guardado. Registrar un documento en SharePoint Online es un proceso simple y se puede realizar en unos pocos pasos a través de la interfaz de usuario del navegador web o PowerShell.
¿Cómo registrar un documento en SharePoint Online?
Siga estos pasos en SharePoint Online para registrar un archivo desprotegido.
- Navegue hasta la biblioteca de documentos donde se guarda el archivo extraído. Seleccione el documento(s) para registrar.
- Desde la cinta, haga clic en la pestaña Archivos y haga clic en "Registrar" en el grupo "Abrir y retirar".
- En el cuadro de diálogo Proteger, haga clic en No para la opción "mantener el archivo protegido después de registrarlo".
- Haga clic en Aceptar.
Si registra un documento pero lo conserva para retirarlo, otros usuarios podrán ver sus últimos cambios mientras usted puede continuar trabajando en el resto de los cambios de su documento.
Si "Registrar" no es una opción, significa que el documento no está actualmente retirado. En la experiencia moderna, puede seleccionar el archivo extraído >> Haga clic derecho y elija "Registrar" en el menú contextual o en la barra de herramientas.
Si bien esto puede resultar útil, ¿qué sucede si desea automatizar este proceso? ¡PowerShell es el camino a seguir!
CSOM de SharePoint Online PowerShell para registrar un documento
Permítame mostrarle cómo registrar un documento en SharePoint Online usando PowerShell:
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\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 para registrar el archivo
El script anterior obtiene el archivo de la URL. Alternativamente, puede obtener un archivo del ID del artículo y registrarlo. Aquí hay otra forma de PowerShell de registrar archivos en SharePoint Online.
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\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 para registrar un documento
¡PnP PowerShell lo hace mucho más simple! Aquí está el PowerShell para registrar un archivo en SharePoint Online:
#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)"
Puede ver el resultado del check-in en la página del historial de versiones:
Comprobación masiva de archivos de SharePoint Online mediante PowerShell:
Para registrar varios archivos en SharePoint Online usando PowerShell, use: SharePoint Online: PowerShell para registrar todos los documentos


