深入浅出SharePoint—使用回收站

本文除特别说明外仅SharePoint 2007外,其他部分均为SharePoint 2010  。

 

回收站机制

通常情况下,回收站机制都有利于防止内容的永久删除与误删除。

通过第一回收站(End user Recycle Bin items),用户可以自己找回已经删除的项目,而不需要管理员介入。例如从备份文件中进行还原等等。

empty-SharePoint-recycle-bin-1

empty-SharePoint-recycle-bin-2

雕虫小技:点击”Recycle Bin”后,在浏览器地址栏中输入来清理数据: javascript:emptyItems();

注明:在07中可以使用清空回收站来一次性操作。

通过第二回收站(Delete from end user Recycle Bin items),还可以给用户一个台阶下,需要管理员来操作,并做合理的规划。

一是需要为启用第二回收站合理规划存储空间。至少为第二回收站分配第一回收站20%左右的空间。也就是说,如果第一回收站的空间为10G,那么第二回收站的空间最好为2G。

二是在启用双回收站机制的时候,同时启用自动清空机制。

另外需要注意,对于第二回收站,系统还有一个默认的自动覆盖策略。即当第二回收站的空间已经达到其最大的容量时,新增加进去的文件会覆盖旧的文件。这跟第一回收站不同。第一回收站如果满的话,系统并不会自动覆盖,而是会提醒用户,空间已满。此时用户可以进行手工清除,以腾空磁盘空间容纳新的文件。

empty-SharePoint-recycle-bin-3

empty-SharePoint-recycle-bin-4

回收站在网站日常维护中应该做好以下工作

一是最好使用回收站机制。二是在自动删除网站之前,最好能够对网站的内容进行自动存档。

检查回收站清理任务(SharePoint 2007)

注明:SharePoint 2010有待确认。

5826_image_thumb_56F84749

2474_image_thumb_5CD2EAE2

timer job The job-recycle-bin-cleanup job被配置为每天从 11pm到6am之间来运行。我们可以使用stsadm.exe命令来查看:

stsadm -o getproperty -pn job-recycle-bin-cleanup -url http://moss

输出的值为:

<Property Exist="Yes" Value="daily between 22:00:00 and 06:00:00" />

如何清空第二回收站(Delete from end user Recycle Bin items)

默认只有“Delete Selection”的 功能,一页最多只能删除200条数据。通常这里的数据会迅速膨胀的很大,我们通常的做法是采用SharePoint对象模型写个小程序。最高效的做法是使用Power Shell。

param([string]$Url, [switch]$help)

[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")

function GetHelp() 
{
$HelpText = @"

DESCRIPTION:
NAME: Remove-SPSiteSecondStageRecycleBin
Empties the second-stage recycle bin for a Microsoft.SharePoint.SPSite Collection

PARAMETERS: 
-url        Url to SharePoint Site Collection

SYNTAX:

Remove-SPSiteSecondStageRecycleBin -url http://moss

Empties the second stage recycle bin for the SiteCollection.

Remove-SPSiteSecondStageRecycleBin -help

Displays the help topic for the script

"@
$HelpText
}

function Remove-SPSiteSecondStageRecycleBin([string]$url) 
{
    $siteCollection = New-Object Microsoft.SharePoint.SPSite($url);  
        
    $recycleQuery = New-Object Microsoft.SharePoint.SPRecycleBinQuery;
    $recycleQuery.ItemState = [Microsoft.SharePoint.SPRecycleBinItemState]::SecondStageRecycleBin;
    $recycleQuery.OrderBy = [Microsoft.SharePoint.SPRecycleBinOrderBy]::Default;

    $recycledItems = $siteCollection.GetRecycleBinItems($recycleQuery);

    $count = $recycledItems.Count;
                        
    for($i = 0; $i -lt $count; $i++)
    {
        $g = New-Object System.Guid($recycledItems[$i].ID);
        $recycledItems.Delete($g);
    }
    
 
    $siteCollection.Dispose()
}

if($help) { GetHelp; Continue }
if($url) { Remove-SPSiteSecondStageRecycleBin -url $url }

posted @ 2013-04-25 22:08  风影极光  阅读(2863)  评论(1编辑  收藏  举报