SharePoint自动化系列——Add/Remove “Hold” from 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自动化系列——Add/Remove “Hold” from items的更多相关文章
- SharePoint自动化系列——Add/Remove "Record" from items
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 目的:批量的将SharePoint items变成records或者将records变成普通的it ...
- SharePoint自动化系列——Add content type to list.
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 将创建好的content type(若是跨web application需要事先publish c ...
- SharePoint自动化系列——Site/Web/List级别的导航菜单
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 需求:在不同的测试用例中,对脚本中不确定的因素需要和用户交互来确定,比如选择哪个site,选择哪个 ...
- SharePoint自动化系列——通过PowerShell创建SharePoint List Items
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 代码如下(保存到本地ps1文件中,右键run with PowerShell即可): Add-PS ...
- SharePoint自动化系列——Create a local user and add to SharePoint
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 实现过程:在本地创建一个local user并将该user添加到Administrators组中, ...
- SharePoint自动化系列——Solution auto-redeploy using Selenium(C#)
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 本来的想法是做一个可以自动卸载并且部署新solution到SharePoint farm的tool ...
- SharePoint自动化系列——Manage "Site Subscriptions" using PowerShell
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 你可以将普通的sites加入到你的site subscriptions中,前提是你需要有一个 Te ...
- SharePoint自动化系列——通过PowerShell在SharePoint中批量做数据
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ PowerShell是基于.NET的一门脚本语言,对于SharePoint一些日常操作支持的很好. ...
- SharePoint自动化系列——创建MMS terms
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ PowerShell脚本实现MMS group.termSet.terms的自动化创建: Add- ...
随机推荐
- 双端队列(单调队列)poj2823 区间最小值(RMQ也可以)
Sliding Window Time Limit: 12000MS Memory Limit: 65536K Total Submissions: 41844 Accepted: 12384 ...
- Java基础(1):Switch语句注意的5个地方
不得不说的几点小秘密: 1. switch 后面小括号中表达式的值必须是整型或字符型 2. case 后面的值可以是常量数值,如 1.2:也可以是一个常量表达式,如 2+2 :但不能是变量或带有变量的 ...
- 封装upload文件上传类
<?php //封装php中的单文件(图片)上传类 /* //参数1:$file 文件数组 5个属性值 name,type,size,tmp,error //参数2:文件保存的路径$pa ...
- java数组转化成集合
package com.shb.web; import java.util.Arrays;import java.util.List; import com.sun.xml.internal.ws.u ...
- Spring容器中的Bean
一,配置合作者的Bean Bean设置的属性值是容器中的另一个Bean实力,使用<ref.../>元素,可制定一个bean属性,该属性用于指定容器中其他Bean实例的id属性 <be ...
- [php] 使用IDE的正则搜索代码
([^a-zA-Z_=$0-9/\[\>])('|"|,)?(\s*)store_banner(\s*)('|"|,)?([^a-zA-Z_=$0-9\/\(\]:]) 用在 ...
- JSP-01-搭建Web应用环境
一.搭建Web应用环境 Tomcat 下载会有两种版本,安装版和解压版,这里以解压版为例 Web服务: 是实现“基于Web无缝集成”的目标而提出的全新概念,希望通过Web服务能够实现不同的系统之间的相 ...
- 161117、使用spring声明式事务抛出 identifier of an instance of
今天项目组有成员使用spring声明式事务出现下面异常,这里跟大家分享学习下. 异常信息: org.springframework.orm.hibernate3.HibernateSystemExce ...
- oracle 自动关闭 数据库连接
数据库启动后过一会自动断开连接(大概10分钟) 方法一.直接修改资源配置文件 分三个步骤在sqlplus环境下完成. 第一步,查询资源文件,找到CONNECT_TIME所在的pr ...
- java中的反射机制,以及如何通过反射获取一个类的构造方法 ,成员变量,方法,详细。。
首先先说一下类的加载,流程.只有明确了类这个对象的存在才可以更好的理解反射的原因,以及反射的机制. 一. 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三 ...