---
title: Inhaltstyp für Dokumentenmappen anlegen mit zulässigen Inhaltstypen und freigegebenen Spalten
description: Wir erklären, wie Sie Inhaltstypen für Dokumentmappen bereitstellen, mit dem Zusatz zulässiger Inhaltstypen und freigegeben Spalten.
image: https://blog.hansevision.com/hubfs/code-820275.jpg_large-3.jpg
---

[![HV_BechtleGroup_sRGB_Black_2025 (3)](https://blog.hansevision.com/hs-fs/hubfs/Website%20Weebly%20Bildmaterialien/Logos/HV_BechtleGroup_sRGB_Black_2025%20(3).png?width=225&height=45&name=HV_BechtleGroup_sRGB_Black_2025%20(3).png)](https://www.hansevision.com/) [Blog](https://blog.hansevision.com)

 Lösungen

 Leistungen

[Über uns](https://www.hansevision.com/hansevision.html)

 Karriere

[Kontakt](https://www.hansevision.com/kontakt.html)

[![HV_BechtleGroup_sRGB_Black_2025 (3)](https://blog.hansevision.com/hs-fs/hubfs/Website%20Weebly%20Bildmaterialien/Logos/HV_BechtleGroup_sRGB_Black_2025%20(3).png?width=163&height=32&name=HV_BechtleGroup_sRGB_Black_2025%20(3).png)](https://www.hansevision.com/) [Blog](https://blog.hansevision.com)

 Lösungen

 Leistungen

[Über uns](https://www.hansevision.com/hansevision.html)

 Karriere

Zurück

 2 Minuten Lesezeit  12.11.2018

[Coding](https://blog.hansevision.com/tag/coding) [Tipps & Tricks](https://blog.hansevision.com/tag/tipps-tricks)

<https://twitter.com/intent/tweet?original_referer=https://blog.hansevision.com/inhaltstyp-fuer-dokumentenmappen-anlegen-mit-zulaessigen-inhaltstypen-und-freigegebenen-spalten?utm_medium=social&utm_source=twitter&url=https://blog.hansevision.com/inhaltstyp-fuer-dokumentenmappen-anlegen-mit-zulaessigen-inhaltstypen-und-freigegebenen-spalten?utm_medium=social&utm_source=twitter&source=tweetbutton&text=> <http://www.linkedin.com/shareArticle?mini=true&url=https://blog.hansevision.com/inhaltstyp-fuer-dokumentenmappen-anlegen-mit-zulaessigen-inhaltstypen-und-freigegebenen-spalten?utm_medium=social&utm_source=linkedin>

![Bild von Philip Szalla (ehemaliger Mitarbeiter)](https://blog.hansevision.com/hs-fs/hubfs/CTA%20Grafiken/profile.png?width=140&height=140&name=profile.png)

[Philip Szalla (ehemaliger Mitarbeiter)](https://blog.hansevision.com/author/philip-szalla)

# Inhaltstyp für Dokumentenmappen anlegen mit zulässigen Inhaltstypen und freigegebenen Spalten

---

Möchte man einen Inhaltstyp für Dokumentenmappen mit einer no-code sandboxed Solution bereitstellen, so muss man sich auf Einschränkungen gefasst machen.

In einem Kundenprojekt hatten wir die Anforderung, einen Inhaltstyp für Dokumentenmappen bereitzustellen, welcher weitere Spalten enthält. Außerdem sollen zulässige Inhaltstypen und freigegeben Spalten konfiguriert sein.

Diese Anforderung ist leider nicht nur mit XML umsetzbar.

Die Website-Spalten sehen wie folgt aus:

```
<?xml version="1.0" encoding="utf-8"?>  <Elements xmlns="http://schemas.microsoft.com/sharepoint/">  <Field  ID="{0FA37CC9-724E-493A-AF4A-DD177164C9F1}"  Name="ProjectManagement_Status"  StaticName="ProjectManagement_Status"  DisplayName="Status"  Type="Choice"  Required="FALSE"  Group="Projektraum">  <CHOICES>  <CHOICE>offen</CHOICE>  <CHOICE>in Bearbeitung</CHOICE>  <CHOICE>zurückgestellt</CHOICE>  <CHOICE>abgeschlossen</CHOICE>  </CHOICES>  </Field>  <Field  ID="{2F9E67E0-44C8-408A-B928-5D146F24DBCF}"  Name="ProjectManagement_ProjectNumber"  StaticName="ProjectManagement_ProjectNumber"  DisplayName="Projektnummer"  Type="Text"  Required="FALSE"  Group="Projektraum">  </Field>  </Elements>  
```

Der Inhaltstyp wird wie gewohnt über das XML angelegt:

```
<?xml version="1.0" encoding="utf-8"?>  <Elements xmlns="http://schemas.microsoft.com/sharepoint/">  <!-- Parent ContentType: Document Set (0x0120D520) -->  <ContentType ID="0x0120D52000A5B3446518A746CFAD20C0F1D7858BB6" Name="Projektmanagement Mappe" Group="Projektraum" Description="" Inherits="TRUE" Overwrite="TRUE" Version="0">  <FieldRefs>  <FieldRef ID="{0FA37CC9-724E-493A-AF4A-DD177164C9F1}" DisplayName="Status" Required="FALSE" Name="ProjectManagement_Status" />  <FieldRef ID="{2F9E67E0-44C8-408A-B928-5D146F24DBCF}" DisplayName="Projektnummer" Required="FALSE" Name="ProjectManagement_ProjectNumber" />  </FieldRefs>  </ContentType>  </Elements>  
```

Das Problem an dieser Stelle ist, dass die zulässigen Inhaltstypen und freigegebenen Spalten nicht festgelegt sind. Selbst, wenn man diese im XML angibt, werden sie von SharePoint ignoriert.  
 Da hilft nur die Verwendung von Code, in unserem Fall PowerShell und CSOM:

```
$context = New-Object Microsoft.SharePoint.Client.ClientContext($WebUrl)  $web = $context.Web    # Getting document set template for content type "Projektmanagement Mappe"...  $documentSetContentType = $web.ContentTypes.GetById($ProjectManagementDocumentSetContentTypeId)  $context.Load($documentSetContentType)  $context.ExecuteQuery()    $documentSetTemplate = [Microsoft.SharePoint.Client.DocumentSet.DocumentSetTemplate]::GetDocumentSetTemplate($context, $documentSetContentType)  $context.Load($documentSetTemplate)  $context.Load($documentSetTemplate.AllowedContentTypes)  $context.Load($documentSetTemplate.SharedFields)  $context.ExecuteQuery()    # Removing allowed content types...  $deleteList = @()  foreach ($ct in $documentSetTemplate.AllowedContentTypes) {  $deleteList += $ct  }    foreach ($ct in $deleteList) {  $documentSetTemplate.AllowedContentTypes.Remove($ct)  }  $documentSetTemplate.Update($true)  $context.ExecuteQuery()    # Adding allowed content types...  $documentContentType = $web.ContentTypes.GetById($ProjectManagementDocumentContentTypeId)  $context.Load($documentContentType)  $context.ExecuteQuery()    $documentSetTemplate.AllowedContentTypes.Add($documentContentType.Id)  $documentSetTemplate.Update($true)  $context.ExecuteQuery()    # Removing shared fields...  $deleteList = @()  foreach ($field in $documentSetTemplate.SharedFields) {  $deleteList += $field  }    foreach ($field in $deleteList) {  $documentSetTemplate.SharedFields.Remove($field)  }  $documentSetTemplate.Update($true)  $context.ExecuteQuery()    # Adding shared fields...  $StatusField = $web.Fields.GetById($StatusFieldId)  $context.Load($StatusField)  $context.ExecuteQuery()    $ProjectNumberField = $web.Fields.GetById($ProjectNumberFieldId)  $context.Load($ProjectNumberField)  $context.ExecuteQuery()    $documentSetTemplate.SharedFields.Add($StatusField)  $documentSetTemplate.SharedFields.Add($ProjectNumberField)  $documentSetTemplate.Update($true)  $context.ExecuteQuery()  
```

Alternativ kann man auch im XML des Inhaltstyps den Schalter **Inherits** auf **False** setzen. Dies führt dazu, dass man im XML die zulässigen Inhaltstypen und freigegebenen Spalten festlegen kann.  
 Allerdings führt das dazu, dass SharePoint nicht mehr die Ressourcen der übergeordneten Inhaltstypen beachtet.  
 Somit wird beispielsweise nicht die docsethomepage.aspx für den Inhaltstyp erstellt. Diese könnte man dann aber selbst anlegen (über die Solution oder Code) oder eine bestehende mittels Code kopieren.

Da dies etwas invasiv ist, empfehle ich persönlich den ersten Weg.

![Bild von Philip Szalla (ehemaliger Mitarbeiter)](https://blog.hansevision.com/hs-fs/hubfs/CTA%20Grafiken/profile.png?width=140&height=140&name=profile.png)

[Philip Szalla (ehemaliger Mitarbeiter)](https://blog.hansevision.com/author/philip-szalla)  Philip Szalla ist seit 2015 als Softwareentwickler bei HanseVision tätig und dabei zuständig für die Entwicklung von individuellen Lösungen. In diesem Umfeld analysiert er Anforderungen, entwirft IT-Architekturen und implementiert Komponenten zusammen mit seinen Kolleg:innen und den Kunden. [Alle Artikel des Autors](https://blog.hansevision.com/author/philip-szalla)

### Ähnliche Blog-Artikel

![](https://blog.hansevision.com/hs-fs/hubfs/Theme%20Development/hansevision-newsletter.png?width=410&name=hansevision-newsletter.png)

### Mit unserem HanseVision Update sind Sie immer gut informiert über alle Themen rund um moderne Zusammenarbeit, Lösungen und Tools, Referenzen und Aktionen.

[![Jetzt zum Newsletter anmelden](https://hubspot-no-cache-eu1-prod.s3.amazonaws.com/cta/default/24882854/c769ef8c-5eed-48ae-ada2-7fc72d656a50.png)](https://hubspot-cta-redirect-eu1-prod.s3.amazonaws.com/cta/redirect/24882854/c769ef8c-5eed-48ae-ada2-7fc72d656a50)

Updates & Aktionen

Versand alle 4-6 Wochen

Trends & aktuelle Entwicklungen

![](https://blog.hansevision.com/hs-fs/hubfs/Theme%20Development/hansevision-newsletter.png?width=250&height=250&name=hansevision-newsletter.png)

[![Jetzt zum Newsletter anmelden](https://hubspot-no-cache-eu1-prod.s3.amazonaws.com/cta/default/24882854/c769ef8c-5eed-48ae-ada2-7fc72d656a50.png)](https://hubspot-cta-redirect-eu1-prod.s3.amazonaws.com/cta/redirect/24882854/c769ef8c-5eed-48ae-ada2-7fc72d656a50)

<https://www.youtube.com/channel/UCZQCgsNj4irQw3Ozhqf3YaA?sub_confirmation=1> <https://www.linkedin.com/company/5723266>

[Datenschutzerklärung](https://www.hansevision.com/datenschutzerklaerung.html)

[Impressum](https://www.hansevision.com/impressum-688471.html)

[AGB](https://www.hansevision.com/uploads/4/1/9/3/41931735/hansevision_agb_der_hansevision_gmbh_stand_31.03.2020.pdf)

[Telefon: +49 (40) 2880 7590 - 0](tel:+4940288075900)

 Adresse: Atlantic Haus, Bernhard-Nocht-Strasse 113, 20359 Hamburg

[Cookie-Richtlinien](https://www.hansevision.com/cookie-richtlinie.html)

 Cookie-Einstellungen

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Philip Szalla (ehemaliger Mitarbeiter)",
    "url" : "https://blog.hansevision.com/author/philip-szalla"
  },
  "dateModified" : "2023-04-24T06:33:27.544Z",
  "datePublished" : "2018-11-12T23:00:00.000Z",
  "headline" : "Inhaltstyp für Dokumentenmappen anlegen mit zulässigen Inhaltstypen und freigegebenen Spalten",
  "image" : [ "https://blog.hansevision.com/hubfs/code-820275.jpg_large-3.jpg" ],
  "mainEntityOfPage" : {
    "@id" : "https://blog.hansevision.com/inhaltstyp-fuer-dokumentenmappen-anlegen-mit-zulaessigen-inhaltstypen-und-freigegebenen-spalten",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://blog.hansevision.com/hubfs/HanseVision_sRGB_Black.png"
    },
    "name" : "HanseVision GmbH"
  }
}
```