SharePoint Online: ดาวน์โหลดเอกสารทุกเวอร์ชันโดยใช้ PowerShell
ความต้องการ: ดาวน์โหลดเอกสารทุกเวอร์ชันใน SharePoint Online โดยใช้ PowerShell
SharePoint Online: PowerShell เพื่อดาวน์โหลดเอกสารทุกเวอร์ชัน
ใน SharePoint Online เอกสารจะถูกจัดเก็บไว้ในไลบรารี และเป็นเรื่องปกติที่เอกสารหลายเวอร์ชันจะมีอยู่เมื่อเวลาผ่านไป ประวัติเวอร์ชันใน SharePoint Online ช่วยให้คุณสามารถจัดเก็บ ติดตาม และคืนค่าไฟล์ในไลบรารีเมื่อมีการเปลี่ยนแปลง บางครั้งคุณอาจต้องดาวน์โหลดไฟล์เวอร์ชันก่อนหน้าทั้งหมด อย่างไรก็ตาม การดาวน์โหลดเอกสารทุกเวอร์ชันอาจเป็นกระบวนการที่น่าเบื่อ โดยเฉพาะอย่างยิ่งหากคุณต้องทำด้วยตนเอง เพื่อประหยัดเวลาและความพยายาม คุณสามารถใช้ PowerShell เพื่อดาวน์โหลดเอกสารทุกเวอร์ชันใน SharePoint Online
เนื่องจากการดาวน์โหลดไฟล์แต่ละเวอร์ชันใช้เวลานานและยุ่งยากจาก UI บนเว็บ ต่อไปนี้คือ PowerShell สำหรับการดาวน์โหลดไฟล์ทุกเวอร์ชันจากไลบรารีเอกสาร SharePoint Online โดยใช้ CSOM
#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"
#Parameters
$SiteURL = "https://Crescent.sharepoint.com"
$FileRelativeURL ="/Shared Documents/Discloser China.doc"
$DownloadPath= "C:\Temp"
#Get credentials to connect
$Cred = Get-Credential
#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 and its versions
$File = $Ctx.Web.GetFileByServerRelativeUrl($FileRelativeURL)
$Ctx.Load($File)
$Ctx.Load($File.Versions)
$Ctx.ExecuteQuery()
If($File.Versions.Count -gt 0)
{
Foreach($Version in $File.Versions)
{
#Frame File Name for the Version
$VersionFileName = "$($DownloadPath)\$($Version.VersionLabel)_$($File.Name)"
#Get Contents of the File Version
$VersionStream = $Version.OpenBinaryStream()
$Ctx.ExecuteQuery()
#Create File version at local disk
[System.IO.FileStream] $FileStream = [System.IO.File]::Open($VersionFileName,[System.IO.FileMode]::OpenOrCreate)
$VersionStream.Value.CopyTo($FileStream)
$FileStream.Close()
Write-Host -f Green "Version $($Version.VersionLabel) Downloaded to :" $VersionFileName
}
}
Else
{
Write-host "No Versions Available for "$Item["FileRef"] -f Yellow
}
PnP PowerShell เพื่อส่งออกเอกสารทุกเวอร์ชัน
มาใช้ PnP PowerShell เพื่อดาวน์โหลดไฟล์ทุกเวอร์ชันจาก SharePoint Online:
#Set Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Funds"
$FileRelativeURL = "/sites/Funds/Funds/Reporting/External/QR/2019/Q3 2019/Global 4/Global IT Seg v2.xlsx"
$DownloadPath = "C:\Temp"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
$Ctx = Get-PnPContext
#Get the File
$File = Get-PnPFile -Url $FileRelativeURL
#Get File Versions
$FileVersions = Get-PnPProperty -ClientObject $File -Property Versions
If($FileVersions.Count -gt 0)
{
Foreach($Version in $FileVersions)
{
#Frame File Name for the Version
$VersionFileName = "$($DownloadPath)\$($Version.VersionLabel)_$($File.Name)"
#Get Contents of the File Version
$VersionStream = $Version.OpenBinaryStream()
$Ctx.ExecuteQuery()
#Download File version to local disk
[System.IO.FileStream] $FileStream = [System.IO.File]::Open($VersionFileName,[System.IO.FileMode]::OpenOrCreate)
$VersionStream.Value.CopyTo($FileStream)
$FileStream.Close()
Write-Host -f Green "Version $($Version.VersionLabel) Downloaded to :" $VersionFileName
}
}
Else
{
Write-host -f Yellow "No Versions Found!"
}
โดยสรุป การใช้ PowerShell เพื่อดาวน์โหลดเอกสารทุกเวอร์ชันใน SharePoint Online เป็นวิธีที่สะดวกและมีประสิทธิภาพในการเปลี่ยนแปลงทุกอย่างกับเอกสารของคุณ ด้วยสคริปต์ PowerShell คุณสามารถดึงข้อมูลเอกสารทุกเวอร์ชันได้อย่างรวดเร็ว ทำให้ง่ายต่อการติดตามการเปลี่ยนแปลงและเก็บบันทึกประวัติของเอกสาร
