In manchen Szenarien kann es
hilfreich sein, automatisiert zu bestehenden Listen / Bibliotheken Inhaltstypen
hinzuzufügen. Für solche und viele andere Anwendungsfälle eignet sich wie so
oft ein Powershell Skript.
Ein Beispiel eines solchen Skripts
finden Sie nachfolgend. Das Skript durchläuft alle Websites in der angegebenen
SiteCollection und fügt die zwei angegebenen Inhaltstypen allen
Dokumentenbibliotheken hinzu.
Das Skript funktioniert mit
SharePoint 2013 (Foundation + Server)
#---------------------------
Add Content Type ------------------------#
#Get site
object and
#specify
name of the content type to look for in each library
$site =
Get-SPSite http://URL/
$newtype1 =
"NAME CONTENT TYPE 1"
$oldtype1 =
"Dokument"
#Walk
through each site in the site collection
$site |
Get-SPWeb -Limit all | ForEach-Object {
write-host
"Checking site:"$_.Title
$_.ContentTypesEnabled = $true
#Go through
each document library in the site
$_.Lists |
where { $_.BaseTemplate -eq "DocumentLibrary" } | ForEach-Object {
$doclibs =
$_.Lists | where { $_.BaseTemplate -eq "DocumentLibrary" }
for ($i =
0; $i -lt $doclibs.Count; $i++) {
$item =
$doclibs[$i]
write-host
"Checking list:"$item.Title
#Add site
content types to the list
if
(($item.ContentTypes | where { $_.Name -eq $newtype1}) -eq $null)
{
$ctToAdd =
$site.RootWeb.ContentTypes[$newtype1]
$ct =
$item.ContentTypes.Add($ctToAdd)
write-host
"Content type" $newtype1 "added to list" $item.Title
}
else
{
write-host
"Content type" $newtype1 "already exists in" $item.Title
}
$folder =
$item.RootFolder
$ctypes=New-Object
System.CollectionsGeneric.List[Microsoft.SharePoint.SPContentType]
foreach
($ct in $item.ContentTypes)
{
if ($ct.Name.Contains($newtype1))
{
$ctypes.Add($ct)
}
}
#$ctypes.Add($site.RootWeb.ContentTypes[$newtype1])
$folder.UniqueContentTypeOrder
= $ctypes
$folder.Update();
$item.ContentTypesEnabled
= $True;
$item.Update()
}
}
}
#Dispose of the site object
$site.Dispose()
Als erfahrener SharePoint Dienstleister haben wir
viel Erfahrung im Einsatz von Powershell Skripten. Andere Funktionen aus
unserem Fundus sind beispielsweise Skripte zum Exportieren von Inhaltstypen in
XML, zum Erweitern der Navigation, Personal mySites Anlage oder alternative
Sprachpakete aktivieren.
Sollten Sie Fragen dazu haben oder einen konkreten
Bedarf, wenden Sie sich gerne an unsere Berater.
Keine Kommentare:
Kommentar veröffentlichen