使用客户端对象模型 (CSOM) 和 PowerShell 将文件远程上传到 SharePoint 库
要求:将文件远程上传到 SharePoint 文档库。
使用客户端对象模型将文件上传到 SharePoint 库的 PowerShell 脚本:
我们可以使用 PowerShell 和客户端对象模型 (CSOM) 将文件远程上传到 SharePoint Online 或 SharePoint 本地文档库。
#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()
重要:运行此脚本之前,请确保您的客户端计算机中安装了 SharePoint 2013 客户端组件 SDK!