我有一个SharePoint网站集,例如: - http://bp1amsapt229:14146/gom/mdrcs
和此网站集中的库
1.常规
2.Order
我想创建一个名为“W_General”的新库,它具有相同的属性(可以说只是重复)作为“常规”库,但“W_General”应该为空(没有文档只有文件夹)
请注意,这些库大小非常大,因此模板不是一个好选择。我希望所有这些都在power shell脚本中。请帮忙
答案 0 :(得分:0)
如果您不使用内容类型,则需要在新库上重新创建源库的字段。在PowerShell中使用SPFieldCollection的AddFieldAsXml
方法非常简单,如下例所示:
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {
Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}
$web = get-spweb "http://bp1amsapt229:14146/gom/mdrcs"
$source = $web.lists["General"]
$newListId = $web.lists.add("W_General", $source.Description, $source.BaseTemplate)
$web.Update()
$list = $web.lists.GetList($newListId,$true)
$source.fields | ForEach-Object{
if(-not $_.FromBaseType){
write-host "adding $($_.Title)... " -NoNewline -ForegroundColor Yellow
$dest.Fields.AddFieldAsXml($_.SchemaXml);
$dest.Update();
}else{
write-host "skipped adding $($_.Title)" -ForegroundColor Gray
}
}
$source.Views | ForEach-Object{
write-host "adding view '$($_.Title)'... "
$dest.Views.Add($_.Title, $_.ViewFields, $_.Query, $_.RowLimit, $_.Paged, $_.DefaultView)
$dest.Update()
}
$web.Dispose()
请注意,如果需要,您还需要将源库中的视图添加到目标库。
上述脚本不会复制附加到库中的任何表单或工作流程。
答案 1 :(得分:0)
感谢您的出色解决方案。我正在使用内容类型,如果我启用Parser,我可以使用您的解决方案。 解析器启用代码
if($ web.ParserEnabled -ne $ true) {
$ web.ParserEnabled = $ true $ web.Update()
}
任何人都可以告诉我这是否会对我的记录库造成任何影响,因为默认情况下它处于停用阶段。如果我在创建我的重复库后将禁用它,它将回滚启用它后激活的所有功能。它会对文档元数据产生什么影响。请解释