2017-07-29 69 views
-1

电源外壳我有恩SharePoint站点集合中创建在SharePoint 2013文档库: - http://bp1amsapt229:14146/gom/mdrcs要使用已经有图书馆

和库本网站收集

1.一般
2 .Order

我想创建一个名为“W_General”具有相同的属性(你可以说只是重复的)为“一般”的库,但“W_General”应该是空的一个新的图书馆(没有任何文件夹只)

请注意,这些库的大小非常大,所以模板不是一个好选择。我希望所有这些都在power shell脚本中。请帮助

回答

0

如果您不使用内容类型,那么您需要在新库上重新创建源库的字段。这使用SPFieldCollection的AddFieldAsXml方法,如下面的例子是在PowerShell中非常简单:

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

请注意,您还需要在需要时从源库视图添加到目标库。

上述脚本不会复制附加到库的任何表单或工作流。

0

感谢您的优秀解决方案。我正在使用内容类型,如果启用解析器,我可以使用您的解决方案。 分析器能代码

如果($ web.ParserEnabled -ne $真){

$ web.ParserEnabled = $真实 $ web.Update()

}

人让我知道这是否会对我的记录库产生任何影响,因为它默认处于停用阶段。如果我将在创建我的重复库后禁用它,它将回滚所有启用后激活的功能。它会对文档元数据产生什么影响?请解释