Forum Discussion
Nigel_Price9911
Feb 12, 2018Iron Contributor
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
- AlyaKoniCopper 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() }
- AlyaKoniCopper ContributorFrom $version.CheckInComment
https://learn.microsoft.com/de-de/previous-versions/office/sharepoint-csom/ee539626(v=office.15)
- Stefan HefeleCopper Contributor
AlyaKoni Works like a charm, thank you!
- Manidurai MohanamariappanIron Contributor
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 }
- Nigel_Price9911Iron Contributor
Works great (as long as you put the t on the end of Get-PnPContex !)
What about if I only want the latest version ?
Regards
Nigel
- Manidurai MohanamariappanIron 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 }