SharePoint Version History Export
-
11-12-2020 - |
سؤال
I can't seem to find any other forms on Microsoft or here on StackExchange about version history exporting for 2016 versions of SharePoint. Anybody have any ideas to get a version history export on SharePoint 2016?
Any ideas would be greatly appreciated.
Thanks! :)
المحلول
If you want to use CSOM C# code instead of powershell, you can try below code to get version history of file:
Microsoft.SharePoint.Client.File file = web.GetFileByServerRelativeUrl("/Shared Documents/mydocument.doc");
context.Load(file);
context.ExecuteQuery();
ListItem currentItem = file.ListItemAllFields;
context.Load(currentItem);
context.ExecuteQuery();
FileVersionCollection versions = file.Versions;
context.Load(versions);
context.ExecuteQuery();
if (versions != null)
{
foreach (FileVersion _version in versions)
{
Console.WriteLine(_version.Created);
Console.WriteLine(_version.CheckInComment);
Console.WriteLine(_version.CreatedBy);
Console.WriteLine(_version.VersionLabel);
Console.WriteLine(_version.IsCurrentVersion);
}
}
نصائح أخرى
I have tried the following PowerShell script that working properly on 2013, but I didn't try it on 2016, but it should be working !!
Meanwhile,If you faced any issue to run this script in SharePoint 2016 , you should have a look to How to Adapt your older SharePoint PowerShell Scripts to Support SharePoint 2016
# ******* Variables Section ******************
#Define these variables
$WebURL="http://sharepoint.crescent.com/sites/Sales/"
$ListName ="Invoice"
$ReportFile = "D:\Invoice_VersionHistory.csv"
# *********************************************
#delete file if exists
If (Test-Path $ReportFile)
{
Remove-Item $ReportFile
}
#Get the Web and List
$Web = Get-SPWeb $WebURL
$List = $web.Lists.TryGetList($ListName)
#Check if list exists
if($List -ne $null)
{
#Get all list items
$ItemsColl = $List.Items
#Write Report Header
Add-Content -Path $ReportFile -Value "Item ID, Version Lable, Created by, Created at, Title"
#Loop through each item
foreach ($item in $ItemsColl)
{
#Iterate each version
foreach($version in $item.Versions)
{
#Get the version content
$VersionData = "$($item.id), $($version.VersionLabel), $($version.CreatedBy.User.DisplayName), $($version.Created), $($version['Title'])"
#Write to report
Add-Content -Path $ReportFile -Value $VersionData
}
}
}
Write-Host "Version history has been exported successfully!"
لا تنتمي إلى sharepoint.stackexchange