簡體   English   中英

使用 Powershell 將文件上傳到 Sharepoint Online (Microsoft 365)(選項 4 - 使用 Microsoft.SharePoint.Client.ClientContext)

[英]Upload file to Sharepoint Online (Microsoft 365) using Powershell (Option 4 - Using Microsoft.SharePoint.Client.ClientContext)

我正在嘗試將文件上傳到 Sharepoint Online (M365) 庫,但它一直給我錯誤。 我嘗試了很多腳本。 這篇文章是關於使用 Microsoft.SharePoint.Client.ClientContext (我已經發布了有關其他腳本的問題,希望有人可以幫助我解決任何問題)

這是代碼:

$WebUrl = "https://myDomain.sharepoint.com/sites/mySite/"
$LibraryName ="myLibrary"
$SourceFile="C:\myFolder\myFile.csv"
$AdminName ="mail@myDomain.com"
$AdminPassword ="myPassword"
  
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($AdminName,(ConvertTo-SecureString $AdminPassword -AsPlainText -Force))
  
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($WebUrl) 
$Context.Credentials = $Credentials
 
$Library =  $Context.Web.Lists.GetByTitle($LibraryName)
 
$FileStream = ([System.IO.FileInfo] (Get-Item $SourceFile)).OpenRead()
#Get File Name from source file path
$SourceFileName = Split-path $SourceFile -leaf
   
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.ContentStream = $FileStream
$FileCreationInfo.URL = $SourceFileName
$FileUploaded = $Library.RootFolder.Files.Add($FileCreationInfo)
  
$Context.Load($FileUploaded) 
$Context.ExecuteQuery() 
 
$FileStream.Close()

剛開始,我有這個錯誤:

新對象:找不到類型 [Microsoft.SharePoint.Client.SharePointOnlineCredentials]:確保加載了包含此類型的程序集。

我想我必須加載它們。 我見過這個代碼:

#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"

但是我沒有安裝這樣的庫

奇怪的是,如果我以前執行此命令(只需執行,然后取消詢問 URL 的提示):

Connect-PnPOnline

然后,不知何故,引用被加載,因為腳本然后完美地工作。

你能告訴我如何加載這些庫嗎?

終於我讓這個腳本工作了!!

首先,您必須安裝 SharePoint Online Management Shell:

https://docs.microsoft.com/en-us/powershell/sharepoint/sharepoint-online/connect-sharepoint-online?view=sharepoint-ps

基本上,執行:

Install-Module -Name Microsoft.Online.SharePoint.PowerShell

它會提示你安裝 NuGet 包,而不是未安裝

然后,找到您的庫,並在開頭添加路徑。 就我而言:

#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\WindowsPowerShell\Modules\Microsoft.Online.SharePoint.PowerShell\16.0.21411.12000\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\WindowsPowerShell\Modules\Microsoft.Online.SharePoint.PowerShell\16.0.21411.12000\Microsoft.SharePoint.Client.Runtime.dll"

腳本就像魅力一樣工作:)

注意:我從以下位置獲得此腳本:

https://www.sharepointdiary.com/2016/06/upload-files-to-sharepoint-online-using-powershell.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM