Столбцы перемещения сайта от одного сайта коллекции в другой?
-
16-10-2019 - |
Вопрос
Есть ли простой способ переместить все столбцы сайта в конкретной группе (например, «Pepsisitecolumns») в другую коллекцию сайта?
Решение
Из коробки нет простого решения. Недавно мне пришлось перенести некоторые столбцы сайта от разработки в производство, и мне пришлось прибегнуть к какому -либо пользовательскому сценарию PowerShell. Также нет простого способа копировать типы контента в другую среду и/или коллекцию.
Короче говоря, это может быть сделано, но вам нужно написать несколько пользовательских PowerShell, чтобы сделать это.
Другие советы
Если у вас есть требование использовать столбцы сайтов в разных коллекциях сайтов, вам, вероятно, следует подумать о создании контент -концентратор типа Для центрального управления типами контента. Даже если у вас нет одинаковых типов контента в каждой коллекции сайтов, вы, вероятно, сможете найти общий базовый тип контента, из которого они получат. Этот базовый тип контента будет включать столбцы, которые вы хотите использовать в разных коллекциях сайтов.
У меня было аналогичное требование, в конечном итоге сценарий PowerShell, аналогичный следующему, который должен решить требование первоначального плаката.
Add-PSSnapin Microsoft.SharePoint.PowerShell
$w1 = Get-SPWeb "https://sharepointsite1.com"
$w2 = Get-SPWeb "https://sharepointsite2.com"
foreach ($f1 in $w1.Fields) {
if ($f1.Group -eq "PepsiSiteColumns") {
$f2 = $w2.Fields | Where { $_.Id -eq $f1.Id };
if ($f2 -eq $null) {
Write-Host("Creating field " + $f1.Title + "...");
$f2 = $w2.Fields.AddFieldAsXml($f1.SchemaXml);
$f1.Delete(); # Careful with this one!
} else {
Write-Host("Field " + $f1.Title + " already exists. Not taking any action.");
}
}
}