Búsqueda de sitios web

SharePoint Online: obtener propiedades de archivo mediante PowerShell


Requisito: Obtener propiedades de archivo en SharePoint Online mediante PowerShell.

SharePoint Online PowerShell para obtener propiedades de archivos

Las propiedades del documento son un conjunto de metadatos que proporcionan información adicional sobre un documento, como el autor, la fecha de creación, el tipo de archivo y cualquier dato de columna personalizada. Al utilizar PowerShell, puede recuperar rápidamente las propiedades de uno o varios documentos. En este artículo, exploraremos cómo usar PowerShell para obtener propiedades de documentos en SharePoint Online. ¡Empecemos!


#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 Get-SPOFileProperties($SiteURL,$FileRelativeURL)
{
    #Setup Credentials to connect
    $Cred = Get-Credential
    $Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)

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

        #Get the File
        $File = $Ctx.Web.GetFileByServerRelativeUrl($FileRelativeURL)
        $Ctx.Load($File)
        $Ctx.Load($File.Author)
        $Ctx.Load($File.ModifiedBy)        
        $Ctx.Load($File.CheckedOutByUser)
        $Ctx.Load($File.Author)
        $Ctx.ExecuteQuery()

        #Get File Properties
        Write-host "File Name:" $File.Name
        Write-host "Title:" $File.Title
        Write-host "File Size:" $File.Length
        Write-host "Created:" $File.TimeCreated
        Write-host "Last Modified:" $File.TimeLastModified
        Write-host "Created By:" $File.Author.Title
        Write-host "Modified By:" $File.ModifiedBy.Title
        Write-host "Checked Out To:" $File.CheckedOutByUser.Title
        Write-host "UI Version:" $File.UIVersion
        Write-host "Major Version:" $File.MajorVersion
    }
    Catch {
        write-host -f Red "Error:" $_.Exception.Message
    }
}

#Call the Function with Site URL and File URL
Get-SPOFileProperties -SiteURL "https://Crescent.sharepoint.com" -FileRelativeURL "/Shared Documents/Discloser Asia.docx"

PowerShell para obtener metadatos de documentos en SharePoint Online

Si necesita recuperar valores de columna personalizados de un archivo:


#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" 
$FileRelativeURL = "/Docs/Compliance Process.xlsx"

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

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

    #Get the File
    $File = $Ctx.Web.GetFileByServerRelativeUrl($FileRelativeURL)
    $Ctx.Load($File)

    #Get the List Item with all metadata fields of the File
    $ListItem = $File.ListItemAllFields
    $Ctx.Load($ListItem)
    $Ctx.ExecuteQuery()

    #Get Metadata of the File
    Write-host "File Name:" $File.Name
    
    #Get the "Status" column value of the File
    Write-host "Status:" $ListItem["Status"]
}
Catch {
    write-host -f Red "Error:" $_.Exception.Message
}

PnP PowerShell para obtener valores de columna de metadatos de archivos

Podrás obtener rápidamente las propiedades de tus archivos dentro de SharePoint Online usando PnP PowerShell como:


#Parameter
$SiteURL= "https://crescent.sharepoint.com/sites/marketing/"
$FileRelativeURL = "/sites/marketing/Shared Documents/Proposal Template.docx"

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

#Get the File as List Item
$File = Get-PnPFile -Url $FileRelativeURL -AsListItem

#To Get All Available Properties: $File.FieldValues
#Get File Metadata Properties - Field Values
Write-host "File Name:"$File["FileLeafRef"]
Write-host "Created By:"$File["Created_x0020_By"]
Write-host "Last Modified:"$File["Last_x0020_Modified"]
Write-host "File Size:"$File["File_x0020_Size"]

En resumen, usar PowerShell para obtener propiedades de documentos en SharePoint Online puede resultar útil cuando necesita generar informes o auditar grandes conjuntos de documentos y usar esa información para organizar, ordenar o filtrar sus documentos.

Artículos relacionados