2017-09-04 13 views
0

Ich habe derzeit eine Sharepoint-2013-Umgebung, die vor von Sharepoint 2010 ein Jahr oder so aktualisiert wurde .. die Versionierung auf einigen Dokumentbibliotheken, wo Satz unbegrenzte Versionen und wurde viel zusätzlichen Platz verbrauch (auf einige Dokumentbibliotheken um 30GB). Ich habe beschlossen, die Versionierung auf 5 (die 5 neuesten Versionen) zu entfernen.Sharepoint Versioning Removal über Powershell

Das folgende Skript hat einen gewissen Erfolg hatte - und wenn auf mehreren Dokumentbibliotheken ausgeführt hat es Versionierung entfernen, aber auf Dateien innerhalb der gleichen Dokumentbibliothek hat die Versionierung nicht entfernt worden ist.

Beispiel: Bevor Sie hatte das Skript Datei 1 = 100 Versionen Datei 2 = hatte 100 Versionen

Nachdem das Skript Datei 1 = 5 Versionen Datei 2 = verfügt über 100 Versionen

hat laufen
$SPweb = Get-SPweb "xxxxx"  ##EDIT AND PUT THE WEB ADDRESS HERE## 
    $versionsToKeep =5; ##NUMBER OF VERSIONS TO KEEP## 
    $SPlist = $SPweb.Lists["Document Library"]  ##THE DOC LIBRARY## 

    foreach ($SPitem in $SPlist.Items) 
     { 
    $currentVersionsCount= $SPItem.Versions.count 

     if($currentVersionsCount -gt $versionstoKeep) 
     { 
    for($i=$currentVersionsCount-1; $i -ge $versionstoKeep; $i--) 
     { 
    $SPItem.versions[$i].delete() 
     } 
     } 
     } 

Ich bin mir nicht sicher, warum das sein würde - und wenn jemand anderes diese Probleme zuvor hatte?

+0

Können Sie nicht einfach die Beschränkung auf die Bibliothek auf 5 Versionen setzen und dann die Bibliothek durchlaufen und jedes Element mit einem Powershell-Skript aktualisieren? Dann sollten alle Versionen gelöscht werden, oder? –

+0

@dns_nx, das klingt wie es funktionieren würde, irgendwelche Ideen in einem PowerShell-Skript, um durch eine Dokumentbibliothek zu durchlaufen? – MattG

+0

Ja, bitte sehen Sie meine Antwort. –

Antwort

0

Ok, also hier ist die Lösung meiner Meinung nach. Legen Sie die Versionsbeschränkung für Dokumentbibliotheken auf 5 fest, und führen Sie dann eine Schleife durch die Bibliothek, und aktualisieren Sie jedes Element mit einem Powershell-Skript.