Búsqueda de sitios web

SharePoint Online: ¿Cómo actualizar las propiedades del documento usando PowerShell?


Requisito: Actualizar los metadatos de un archivo en SharePoint Online mediante PowerShell.

¿Cómo editar metadatos de forma masiva en SharePoint Online?

Una de las características clave de SharePoint Online es la capacidad de almacenar metadatos o propiedades para cada documento de una biblioteca. Estas propiedades proporcionan información valiosa sobre el documento, como su estado, autor y fecha de creación. En este artículo, cubriremos cómo actualizar las propiedades del documento en SharePoint Online usando PowerShell. Esto puede resultar útil para actualizar una gran cantidad de documentos con los mismos valores de propiedad o para automatizar actualizaciones de propiedades de documentos como parte de un flujo de trabajo o proceso.

Si desea cambiar las propiedades de varios documentos en una biblioteca de documentos de SharePoint Online a la vez, puede usar el panel de detalles en la experiencia moderna para editar de forma masiva los metadatos del archivo.

Siga estos pasos para actualizar de forma masiva las propiedades del documento:

  1. Explore su biblioteca de documentos de SharePoint Online >> Seleccione los documentos de la biblioteca de documentos.
  2. Haga clic en el pequeño botón "i" para abrir el panel de detalles.
  3. Ahora, puede cambiar las propiedades de los documentos seleccionados de forma masiva.
  4. Haga clic en Guardar para aplicar los cambios.

Edición masiva de metadatos en SharePoint Online: Utilice la “Edición rápida” para editar y actualizar metadatos de varios archivos a la vez en una vista de hoja de datos similar a Excel.

SharePoint Online: PowerShell para actualizar los metadatos de un archivo

Déjame mostrarte el PowerShell para actualizar los metadatos de un archivo en SharePoint Online. Esto puede resultar útil si necesita realizar actualizaciones en una gran cantidad de archivos a la vez o si desea automatizar el proceso.


#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
$SiteURL= "https://crescent.sharepoint.com/sites/Marketing"
$FileRelativeURL="/sites/Marketing/Shared Documents/Release Notes.dotx"
 
#Setup Credentials to connect
$Cred = Get-Credential
 
Try {
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
 
    #Get the File
    $File = $Ctx.Web.GetFileByServerRelativeUrl($FileRelativeURL)
    $Ctx.Load($File)
    $Ctx.ExecuteQuery()

    #Set metadata of the File
    $ListItem = $File.ListItemAllFields
    $ListItem["ReviewTimestamp"] = [System.DateTime]::Now  
    $ListItem.Update()  
    $Ctx.ExecuteQuery()    
 
    write-host -f Green "Document Metadata Updated Successfully!"
}
Catch {
    write-host -f Red "Error: " $_.Exception.Message
}

PowerShell para establecer el valor de metadatos para todos los archivos en una biblioteca de documentos de SharePoint Online

¿Qué tal actualizar las propiedades de todos los archivos en una biblioteca de documentos 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"
   
#Set Variables
$SiteURL= "https://crescent.sharepoint.com/sites/Marketing"
$ListName="Documents"
 
#Setup Credentials to connect
$Cred = Get-Credential
 
Try {
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
 
    #Get All Items from the List
    $List = $Ctx.web.Lists.GetByTitle($ListName)
    $ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery()) 
    $Ctx.Load($ListItems)
    $Ctx.ExecuteQuery()       
 
    #Loop through each item 
    ForEach($ListItem in $ListItems)
    {
        #Set metadata of the List Item
        $ListItem["ReviewTimestamp"] = [System.DateTime]::Now
        $ListItem.Update()
        write-host -f Green "Document Metadata Updated Successfully for:" $ListItem["FileLeafRef"]        
    }
    $Ctx.ExecuteQuery()
}
Catch {
    write-host -f Red "Error: " $_.Exception.Message
}

PnP PowerShell para configurar metadatos de un archivo

Así es como puede cargar un archivo en la biblioteca de documentos de SharePoint Online y configurar sus metadatos usando PnP PowerShell:


#Variables
$SiteURL = "https://crescent.sharepoint.com/sites/branding"
$FilesPath = "C:\Temp\Technical Design.docx"
$SiteRelativePath = "/documents"
 
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
 
#Get the File from the local path
$File = Get-ChildItem -Path $FilesPath
 
#Get Created on, Last Modified Properties of the file
$Created = [DateTime]$File.CreationTime 
$Modified = [DateTime]$File.LastWriteTime

#Upload the file to SharePoint Online folder - and Set Metadata
Add-PnPFile -Path $File.FullName -Folder $SiteRelativePath -Values @{"Title" = $($File.Name);"Created"=$Created;"Modified"=$Modified}

De manera similar, para configurar los metadatos de un archivo existente, use:


#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
$ListName = "Branding"
$SiteRelativeURL = "/Branding/Technical Design.docx"
$CreatedBy= "Salaudeen@crescent.com"
$Title = "New Design Document V2.docx"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
 
#Get the File from SharePoint
$File = Get-PnPFile -Url $SiteRelativeURL -AsListItem
 
#Update document properties
Set-PnPListItem -List $ListName -Identity $File.Id -Values @{"Title" = $Title; "Author" = $CreatedBy}

Terminando

En conclusión, actualizar las propiedades de los documentos en SharePoint Online mediante PowerShell puede ser una forma poderosa y eficiente de administrar el contenido en la plataforma. Al utilizar el script CSOM PowerShell o los cmdlets PnP PowerShell, puede automatizar las actualizaciones de las propiedades de los documentos como parte de un flujo de trabajo o proceso, o actualizar una gran cantidad de documentos con los mismos valores de propiedad.

Si desea editar en masa las propiedades del documento desde un archivo CSV, consulte: SharePoint Online: actualización masiva de metadatos desde un archivo CSV usando PowerShell

Artículos relacionados