PowerShell kullanarak İçerik Türlerini SharePoint Listesine veya Kitaplığına Ekle-Kaldır
SharePoint içerik türleri, kullanıcıların ilgili verileri birlikte düzenlemesine olanak tanır. Tutarlılık ve yeniden kullanılabilirlik sağlamak için her şey SharePoint'teki içerik türleri etrafında oluşturulmuştur. Örneğin, Duyurular ve Görevler gibi tüm liste şablonları sırasıyla “Duyuru” ve “Görev” içerik türleriyle oluşturulmuştur! Tipik olarak bir içerik türü şablon ve meta veri sütunlarından oluşur. Örneğin, site koleksiyonunda satış teklifi için bir şablon ve bununla ilgili meta verileri yakalayacak sütunlarla oluşturulabilen ve herhangi bir sayıda belge kitaplığıyla ilişkilendirilebilen "Satış Teklifi belgesi" içerik türünü ele alalım.
Varsayılan olarak içerik türlerinin kapsamı site koleksiyonu düzeyindedir. SharePoint listesine bir içerik türü eklediğinizde, site içerik türü galerisinden listeye kopyalanır; bu, bir içerik türünü liste düzeyinde özelleştirdiğinizde, liste düzeyinde bulunan ana içerik türünü etkilemediği anlamına gelir. site koleksiyonu düzeyi.
İçerik Türlerini SharePoint Kitaplığı veya Listesiyle Nasıl İlişkilendirebilirim?
İçerik türünü SharePoint'teki bir listeye veya Kitaplığa eklemek için aşağıdakileri yapın:
- Liste/Kitaplık ayarlarına gidin.
- Genel Ayarlar grubu altında Gelişmiş Ayarlar'a tıklayın.
- İçerik türleri seçeneğini, içerik türlerinin yönetimine izin vermek için “Evet” olarak ayarlayın.
- Artık liste ayarları sayfasında, listedeki tüm ilişkili içerik türlerinin yer aldığı yeni bir "İçerik türleri" bölümü bulacaksınız.
Mevcut herhangi bir içerik türünü listeye eklemek için “Mevcut site içerik türlerinden ekle” bağlantısını tıklayabilirsiniz.
-
“İçerik Türleri Ekle” sayfasında, “Kullanılabilir Site İçerik Türleri” bölümünde, listeye veya kitaplığa eklemek istediğiniz içerik türlerini seçin, Ekle'ye ve ardından Tamam'a tıklayın. Artık yeni içerik türü ayarlar sayfasında görünüyor.
PowerShell'i kullanarak SharePoint listesine bir içerik türü ekleyin:
Bir içerik türünü birden çok sitedeki birden çok listeyle ilişkilendirmek istiyorsanız bunu programlı olarak yapmak için aşağıdaki PowerShell komut dosyalarını kullanabilirsiniz! Benim durumumda 50'den fazla alt siteye sahip bir sitem var. Gereksinim, tüm sitelerdeki belirli bir kitaplığa içerik türü eklemektir. Bu nedenle, bu PowerShell özel işlevini SharePoint kitaplığına içerik kaldırma türünü eklemek için yazdım.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Custom PowerShell Function to Add Content type to SharePoint list
Function Add-ContentTypeToList([Microsoft.SharePoint.SPList]$List, $ContentTypeName)
{
#Check if Content Type Management is enabled
if($List.ContentTypesEnabled -ne $true)
{
Write-Host "Enabling Content type management on list: $($list.Title)"
$List.ContentTypesEnabled = $true
$List.Update()
}
#Get the content type
$ContentType = $List.ParentWeb.Site.RootWeb.ContentTypes[$ContentTypeName]
#If content type found in the site
if ($ContentType)
{
#Check If list doesn't has the specific content type already
if (-not $list.ContentTypes[$ContentTypeName])
{
#Add content type to the list
$list.ContentTypes.Add($ContentType) | Out-Null
$list.Update()
Write-Host "Content Type Added to the list: $($List.Title)"
}
else
{
Write-Host "Content Type '$($ContentTypeName)' already exists on the list '$($list.Title)'"
}
}
else
{
Write-Host "Cannot find the Content Type '$($ContentTypeName)' to add to list '$($list.Title)'"
}
}
#Variables for processing
$WebURL ="https://sales.crescent.com"
$ListName ="Q1 Sales Proposal"
$ContentTypeName ="Sales Proposal"
#Get the Web and List
$Web = Get-SPWeb $WebURL
$List = $Web.lists.TryGetList($ListName)
if($list -ne $null)
{
#Call the function to add content type
Add-ContentTypeToList $list $ContentTypeName
}
İçerik türü listeden nasıl kaldırılır?
Kullanmadığınız, kullanılmayan içerik türlerini kaldırmak için aşağıdakileri yapın:
- Liste Ayarları veya Kitaplık Ayarları sayfasına göz atın.
- "İçerik Türleri" bölümünün altında kaldırmak istediğiniz içerik türünü tıklayın.
- “Bu İçerik Türünü Sil” bağlantısını tıklayın ve ardından onay isteminde Tamam'ı tıklayın.
PowerShell'i kullanarak SharePoint listesinden içerik türünü kaldırma
Bir içerik türünü SharePoint Listesinden veya belge kitaplığından silmek için bu PowerShell betiğini kullanın:
#Custom PowerShell Function to Remove Content type from SharePoint list
Function Remove-ContentTypeFromList([Microsoft.SharePoint.SPList]$List, $ContentTypeName)
{
#Check if Content Type Management is enabled
if($List.ContentTypesEnabled -ne $true)
{
Write-Host "Enabling Content type management on list: $($list.Title)"
$List.ContentTypesEnabled = $true
$List.Update()
}
#Get the content to remove from list
$ContentType = $List.ContentTypes[$ContentTypeName]
#If content type found in the site
if ($ContentType)
{
#Check If list doesn't has the specific content type already
if ($list.ContentTypes[$ContentTypeName])
{
#Remove content type from the list
$list.ContentTypes.Delete($ContentType.Id)
$list.Update()
Write-Host "Content Type has been removed from the list: $($List.Title)"
}
else
{
Write-Host "Content Type '$($ContentTypeName)' doesn't exists on the list '$($list.Title)'"
}
}
else
{
Write-Host "Cannot find the Content Type '$($ContentTypeName)' to add to list '$($list.Title)'"
}
}
#Variables for processing
$WebURL ="https://sales.crescent.com"
$ListName ="Q1 Sales Proposal"
$ContentTypeName ="Sales Proposal"
#Get the Web and List
$Web = Get-SPWeb $WebURL
$List = $Web.lists.TryGetList($ListName)
if($list -ne $null)
{
#remove content type from list, call:
Remove-ContentTypeFromList $list $ContentTypeName
}
İçerik türüne göre öğeler zaten oluşturulmuşsa içerik türünü kaldıramazsınız! Kullanımda olan bir içerik türünü silmeye çalışırsanız “İçerik Türü hala kullanımda” hatasıyla karşılaşırsınız!

