$w =
get
-spweb
"http://corporate"
$l = $w.Lists.TryGetList(
"Pages"
);
$items = $l.Items;
$f = $l.Fields[
"Check In Comment"
];
$listType = $l.GetType().Name;
foreach
($item
in
$items)
{
$itemTitle = $item.Title;
if
($listType -eq
"SPDocumentLibrary"
)
($itemTitle -eq
""
){$itemTitle = $item[
"Name"
];}
}
($item.Versions.Count -gt 0){
$vtr = $item.Versions.Count;
Write-Host
"$itemTitle, has $vtr versions"
-foregroundcolor Green;
($item.Versions.Count -gt 5){
while
($vtr -gt 5){
$vtr--;
[Microsoft.SharePoint.SPListItemVersion]$iv = $item.Versions[$vtr];
$versionNumber = $iv.VersionLabel;
(!$iv.VersionLabel.EndsWith(
".0"
))
continue
;
"$itemTitle : Deleted version $versionNumber"
-foregroundcolor Yellow;
$iv.Delete();
$itemAuthor = ($item.Fields[
"Created By"
]).GetFieldValueAsText($item[
]);
"$itemTitle, has $vtr versions. Created By: $itemAuthor"
($vtr -gt 0){
$versionAuthor = $iv.CreatedBy.User.DisplayName;
$comment=
($f -ne $
null
($iv.IsCurrentVersion)
$comment =
"Comment: "
+($f.GetFieldValueAsText($item.Versions.GetVersionFromID($iv.VersionId)[
])).Replace(
"`r`n"
,
" "
).Replace(
"`n"
else
+($f.GetFieldValueAsText($item.File.Versions.GetVersionFromID($iv.VersionId).CheckInComment)).Replace(
Write-Host ([String]::Format(
"$itemTitle, version: $versionNumber edited by: $versionAuthor {0}"
, $comment)) -foregroundcolor Cyan;
Richard Mueller edited Revision 3. Comment: Changed tag "Has Images" to "Has Image" (we want to standardize on mostly singular tags), removed extra space in tag "SharePoint 2010"
Matthew Yarlett edited Revision 1. Comment: Minor changes to wording. Added links.
Matthew Yarlett edited Original. Comment: Added images for the examples.
Nice article Matthew! Maybe adding a TOC?
Ed Price - MSFT edited Revision 2. Comment: Adding TOC
I added the TOC. Great article!
Thanks Ed, thanks Margriet!