2017-07-29 82 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()

}

人讓我知道這是否會對我的記錄庫產生任何影響,因爲它默認處於停用階段。如果我將在創建我的重複庫後禁用它,它將回滾所有啓用後激活的功能。它會對文檔元數據產生什麼影響?請解釋