Forum Discussion

Nigel_Price9911's avatar
Nigel_Price9911
Iron Contributor
Feb 12, 2018

How Do I get the version of a file using PnP Powershell

Hi

 

I am trying to get the version of a file in a document library using PnP Powershell.

Connect-PnPOnline -Url <url> 

$ListItems = Get-PnPListItem -List <MyDocLibrary>

 

for each ($item in $ListItems)

{

        $file = $item.file

        $fileversions = $file.Versions

        Write-Host $file, $fileversions

 

}

 

But this does not seem to work.

 

Anybody any ideas ?

 

Thanks

 

Nigel

  • AlyaKoni's avatar
    AlyaKoni
    Copper Contributor

    Nigel_Price9911 For SharePoint Online I'm using following code:

     

        Get-PnPFile -Url $item.ServerRelativeUrl -Path $destinationFolderPath -AsFile -Force # Latest version
        $ctx= Get-PnPContext
        $ctx.Load($item.Versions)
        $ctx.ExecuteQuery()
        foreach ($version in $item.Versions)
        {
            $versionValue = $version.VersionLabel
            $str = $version.OpenBinaryStream()
            $ctx.ExecuteQuery()
            $filename =  (Split-Path $item.ServerRelativeUrl -Leaf) + "." + $versionValue
            $filepath = Join-Path $destinationFolderPath $filename
            $fs = New-Object IO.FileStream $filepath ,'Append','Write','Read'
            $str.Value.CopyTo($fs) # Older version
            $fs.Close()
        }
  • You can try this script

     

    Connect-PnPOnline -Url <url> 
    $ListItems = Get-PnPListItem -List <MyDocLibrary>
    $ctx= Get-PnPContex
    foreach ($item in $ListItems)
    {
            $file = $item.file
            $fileversions = $file.Versions
            $ctx.load($file)
            $ctx.load($fileversions)
            $ctx.ExecuteQuery()
            Write-Host $file.Name,$fileversions.VersionLabel
    }

     

      • Manidurai Mohanamariappan's avatar
        Manidurai Mohanamariappan
        Iron Contributor

        You can try this modified script 

        Connect-PnPOnline -Url <url> 
        $ListItems = Get-PnPListItem -List <MyDocLibrary>
        $ctx= Get-PnPContext
        foreach ($item in $ListItems)
        {
                $file = $item.file
                $ctx.load($file)
                $ctx.ExecuteQuery()
                Write-Host $file.Name,$file.UIVersionLabel
        }

Resources