开发者社区> 天外归云> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

SharePoint自动化系列——Add/Remove “Hold” from items

简介: 转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 问题1: 1.如果SharePoint item被添加了hold,通过UI界面来对SharePoint items解锁是比较折腾的。
+关注继续查看

转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/

问题1:

1.如果SharePoint item被添加了hold,通过UI界面来对SharePoint items解锁是比较折腾的。

2.而且这其中存在一个问题,我们可以看作是已知问题——对于文件的解锁,是可以通过UI界面完成的;而对于list中的items,我们通过UI界面是无法完成解锁的,因为当你在item中上传附件并对其添加hold后,你是无法通过item的Property->Advanced再进入Compliance details中的,所以无法完成对item附件的解锁。

而对于以上的两个问题——解锁过程的繁琐和无法解锁,我们可以通过一个脚本来解决:

Add-PSSnapin Microsoft.SharePoint.PowerShell
function RemoveHolds($siteURL,$listTitle)
{
    $site = Get-SPSite $siteURL
    $web = $site.RootWeb
    $list = $web.Lists[$listTitle]
    $items = $list.Items
    $holds = $web.Lists["Holds"].Items
    $holdsCount = $holds.Count
    Write-Host "Holds in this site:" -ForegroundColor DarkCyan
    for($i=0;$i -lt $holdsCount;$i++)
    {
        $tip = "["+$i+"] "+$holds[$i].title
        Write-Host $tip -ForegroundColor DarkYellow
    }
    $choose = Read-Host "Choose the hold you wanna remove from items"
    $itemHold = $web.Lists["Holds"].items[[int]$choose]
    [Microsoft.Office.RecordsManagement.Holds.Hold]::RemoveHold($items,$itemHold,"Hold removed from all the items")
    $web.Dispose()
    $site.Dispose()
}
$siteURL = "http://exhv-3073/sites/1116site1"
$listTitle = "1116docLib"
RemoveHolds $siteURL $listTitle

直接在PowerShell或者PowerShell ise中运行这段脚本:

如上所示,在输入siteURL和listTitle后运行程序,选择相应的hold,就可以对list中的items进行解锁了。解锁后的items就可以正常进行编辑或删除了。

问题2:

1.为items添加hold和remove hold from items一样麻烦;

2.无法批量地为items添加hold。

同样用一个脚本解决,只需要将上段代码中稍作修改即可:

Add-PSSnapin Microsoft.SharePoint.PowerShell
function AddHolds($siteURL,$listTitle)
{
    $site = Get-SPSite $siteURL
    $web = $site.RootWeb
    $list = $web.Lists[$listTitle]
    $items = $list.Items
    $holds = $web.Lists["Holds"].Items
    $holdsCount = $holds.Count
    Write-Host "Holds in this site:" -ForegroundColor DarkCyan
    for($i=0;$i -lt $holdsCount;$i++)
    {
        $tip = "["+$i+"] "+$holds[$i].title
        Write-Host $tip -ForegroundColor DarkYellow
    }
    $choose = Read-Host "Choose the hold you wanna add to items"
    $itemHold = $web.Lists["Holds"].items[[int]$choose]
    [Microsoft.Office.RecordsManagement.Holds.Hold]::SetHold($items,$itemHold,"Hold added")
    $web.Dispose()
    $site.Dispose()
}
$siteURL = "http://exhv-3073/sites/1116site1"
$listTitle = "1118docLib"
AddHolds $siteURL $listTitle

直接在PowerShell或者PowerShell ise中运行这段脚本:

另,一键执行所有和Hold processing and reporting的jobs:

#Run the 'Hold processing and reporting'timer jobs.
$jobs = Get-SPTimerJob|where{$_.name -like '*hold*'}
foreach($job in $jobs)
{
    Start-SPTimerJob $job
}

或:

Get-SPTimerJob|where{$_.name -like '*Hold*'}|Start-SPTimerJob

参考文献:

How to add to a hold using Powershell and Programmatically in SharePoint 2010

How to remove from a hold using PowerShell and programmatically in SharePoint 2010

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SharePoint自动化系列——Site/Web/List级别的导航菜单
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 需求:在不同的测试用例中,对脚本中不确定的因素需要和用户交互来确定,比如选择哪个site,选择哪个web,选择哪个list。
490 0
SharePoint自动化系列——Add content type to list.
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 将创建好的content type(若是跨web application需要事先publish content type,并在Monitor中跑和Content type同步相关的job,这里我写...
501 0
SharePoint自动化系列——Add/Remove "Record" from items
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 目的:批量的将SharePoint items变成records或者将records变成普通的items。
495 0
SharePoint自动化系列——Content Type相关timer jobs一键执行
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 背景: 在SharePoint Central Administration->Monitoring->Job Definitions中我们可以看到所有的timer jobs,其中和Content Type相关的timer jobs有:   1.
561 0
SharePoint自动化系列——Create a local user and add to SharePoint
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 实现过程:在本地创建一个local user并将该user添加到Administrators组中,然后在SharePoint指定site中添加该user,并赋予Full Control的权限。
511 0
SharePoint自动化系列——创建MMS terms
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ PowerShell脚本实现MMS group、termSet、terms的自动化创建: Add-PSSnapin Microsoft.
619 0
SharePoint自动化系列——Select-option标签的定位方法总结
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ C#中通过Selenium定位页面上的select-option结构,尝试了以下几种方法,均没有生效: //iw.
571 0
SharePoint自动化系列——Manage "Site Subscriptions" using PowerShell
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 你可以将普通的sites加入到你的site subscriptions中,前提是你需要有一个 Tenant Administration site,如果没有这个site,一切都别谈了。
573 0
SharePoint自动化系列——Error features自动deactivate
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ SharePoint Content Deployment prerequisite——Error features deactivate automation 对于Content Depl...
614 0
《企业级基础设施专场-实现规模化、自动化的云上IT管理_张子轩周剑》电子版地址
企业级基础设施专场-实现规模化、自动化的云上IT管理_张子轩周剑
0 0
+关注
天外归云
测试开发工程师,目前就职于网易。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
《一站式网络自动化管理平台》
立即下载
钉钉客户端自动化的应用
立即下载
新一代自动化渗透平台的设计与实现
立即下载