Búsqueda de sitios web

Cargue archivos a la biblioteca de SharePoint de forma remota mediante el modelo de objetos del lado del cliente (CSOM) y PowerShell


Requisito: Cargar archivos en una biblioteca de documentos de SharePoint de forma remota.

Secuencia de comandos de PowerShell para cargar un archivo en la biblioteca de SharePoint utilizando el modelo de objetos del cliente:

Podemos cargar archivos en bibliotecas de documentos locales de SharePoint Online o SharePoint de forma remota mediante PowerShell y el modelo de objetos del lado del cliente (CSOM).


#Load SharePoint CSOM Assemblies
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime") | Out-Null

##Variables for Processing
$SiteUrl = "https://mgmt.crescent.com/"
$LibraryName="Proposal Documents"
$SourceFile ="D:\Reports\MonthlyRpt.csv"

#Setup Credentials to connect
$Credentials = [System.Net.CredentialCache]::DefaultCredentials  #Current User Credentials
#connect using user account/password
#$Credentials = New-Object System.Net.NetworkCredential($UserName, (ConvertTo-SecureString $Password -AsPlainText -Force))
#For Office 365, Use:
#$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,(ConvertTo-SecureString $Password -AsPlainText -Force))

#Set up the context
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl) 
$Context.Credentials = $credentials
$web = $Context.Web

#Get the Library
$List = $web.Lists.GetByTitle($LibraryName)
$Context.Load($List)
$Context.ExecuteQuery()
    
#Get File Name from source file path
$SourceFileName = Split-path $SourceFile -leaf 

#Get Source file contents
$FileStream = ([System.IO.FileInfo] (Get-Item $SourceFile)).OpenRead()

#Upload to SharePoint
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.ContentStream = $FileStream
$FileCreationInfo.URL = $SourceFileName
$FileUploaded = $List.RootFolder.Files.Add($FileCreationInfo)
$Context.Load($FileUploaded)
$Context.ExecuteQuery()

#Set Metadata
$properties = $FileUploaded.ListItemAllFields;
$context.Load($properties)
$properties["Category"]="Reports"
$properties.Update() 
$context.ExecuteQuery()
 
#Close file stream
$FileStream.Close()

Importante: Asegúrese de tener instalado el SDK de componentes de cliente de SharePoint 2013 en su máquina cliente antes de ejecutar este script.

Artículos relacionados