2017-09-04 122 views
0

現在、SharePoint 2010からSharePoint 2010を1年前にアップグレードしました。一部のドキュメントライブラリのバージョン管理で、無制限のバージョンに設定されていて、一部のドキュメントライブラリは約30GB)。私はバージョン管理を5に戻すことにしました(5つの最新バージョン)。Powershellを使用したSharepointのバージョン管理の削除

以下のスクリプトは成功しました。複数のドキュメントライブラリで実行すると、バージョン管理は削除されますが、同じドキュメントライブラリ内のファイルではバージョン管理は削除されません。

例: スクリプトを ファイル1 =を実行する前に100のバージョンは ファイル2 =スクリプト ファイル1 = 5つのバージョン ファイル2 = 100のバージョン

を有している実行した後100のバージョン

を持っていました

$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() 
     } 
     } 
     } 

私はこれがなぜ起こるのか不明です。他の誰かが以前にこれらの問題を抱えていた場合は、

+0

ライブラリの制限を5バージョンに設定してライブラリをループし、各アイテムをpowershellスクリプトで更新することはできませんか?それから、すべてのバージョンをクリアする必要がありますか? –

+0

@dns_nxはうまくいくと思いますが、PowerShellスクリプトでドキュメントライブラリをループするアイデアはありますか? – MattG

+0

はい、私の答えを見てください。 –

答えて

0

これは私の意見では解決策です。 ドキュメントライブラリのバージョン制限を5に設定し、ライブラリをループし、各アイテムをpowershellスクリプトで更新します。

関連する問題