Búsqueda de sitios web

Descargar todas las versiones de un documento en SharePoint usando PowerShell - Servicios web


Requisito:
Quería extraer y descargar cada versión del documento almacenado en una biblioteca de SharePoint. Bueno, PowerShell puede hacerlo desde el lado del cliente mediante servicios web. Aquí está el script de PowerShell para descargar cada versión a la carpeta local mediante programación.

Descargar todas las versiones de un documento usando PowerShell


# ******* Variables Section ******************
#Define these variables 
$WebURL="https://sharepoint.crescent.com/sites/Operations/"
$FilePath ="https://sharepoint.crescent.com/sites/Operations/docs/designDoc.docx"
$TargetFolder = "C:\Downloads"
# *********************************************

#Web Service URL
$WebServiceURL =$WebURL+"_vti_bin/Versions.asmx"
$WebService = New-WebServiceProxy -Uri $WebServiceURL -UseDefaultCredential
$WebService.URL=$WebServiceURL

#Get File name from file path
$FileName = $FilePath.Substring($FilePath.LastIndexOf("/")+1,($FilePath.Length-$FilePath.LastIndexOf("/")-1))

#Create the Target Library if it doesn't exists
if (!(Test-Path -path $TargetFolder))
{   
        #If it doesn't exists, Create
        $TargetFolder = New-Item $TargetFolder -type directory
}

#Call web service method "GetVersions" to retrieve versions collection
$FileVersions = $WebService.GetVersions($FilePath).Result
foreach($File in $FileVersions)
{ 
    #Frame the File name : E.g. 1.0_Filename.ext
    $VersionFileName = "$($TargetFolder)\$($File.version)_$($FileName)"
    write-host $VersionFileName
    $webclient = New-Object System.Net.WebClient
    $webclient.UseDefaultCredentials = $true
    write-host $File.url
    $webclient.DownloadFile($File.url,$VersionFileName)
    Write-Host "Downloaded version: $($File.Version)"
}

Así es como se ve el resultado:

Artículos relacionados