Aktivieren/Deaktivieren benutzerdefinierter Skripte in einer Websitesammlung mit PowerShell

Aktivieren/Deaktivieren benutzerdefinierter Skripte in einer Websitesammlung mit PowerShell

TL;DR: Um Teamsware Solutions zu erstellen oder zu aktualisieren, müssen benutzerdefinierte Skripte auf der Ziel-SharePoint-Websitesammlung aktiviert sein. Wenn in Ihrem Microsoft 365-Tenant die Richtlinie im Baseline Security Mode "Don't allow new custom scripts in SharePoint sites" aktiviert ist, müssen Sie diese zuerst im Microsoft 365 Admin Center deaktivieren – andernfalls werden Einstellungen auf Website-Ebene innerhalb von 24 Stunden automatisch zurückgesetzt. Sobald die tenantweite Richtlinie deaktiviert ist, kann Solution Studio benutzerdefinierte Skripte auf einzelnen Websitesammlungen aktivieren oder Sie aktivieren diese manuell über die SharePoint Online Management Shell oder PnP PowerShell.


Dieser Artikel beschreibt, wie Sie benutzerdefinierte Skripte auf einer SharePoint-Websitesammlung aktivieren, damit Teamsware Studio Lösungen auf dieser Website erstellen und aktualisieren kann. Die Skriptfunktion in Teamsware Studio ist an die Einstellung „Custom Script“ in den SharePoint-Admin-Einstellungen gekoppelt. Ohne diese Funktion ist das Erstellen oder Aktualisieren von Teamsware Solutions nicht möglich. Es gibt zwei Ebenen, die berücksichtigt werden müssen: eine tenantweite Richtlinie (Microsoft 365 Baseline Security Mode) und eine Einstellung auf Ebene der Websitesammlung (PowerShell-Befehl pro Site). Dieser Artikel führt Sie durch beide Ebenen – beginnend mit der tenantweiten Richtlinie und anschließend mit den PowerShell-Befehlen auf Website-Ebene.


Szenario

Sie sind SharePoint- oder Microsoft 365-Administrator in Ihrem Tenant.
Sie möchten eine Teamsware Solution auf einer SharePoint-Websitesammlung erstellen oder aktualisieren.
Dazu müssen Sie:
– die tenantweite Baseline Security Mode-Richtlinie prüfen und ggf. deaktivieren, die benutzerdefinierte Skripte global blockiert
– benutzerdefinierte Skripte auf der Ziel-Websitesammlung aktivieren

Schritt 1 — Baseline Security Mode Richtlinie prüfen und deaktivieren

Microsoft 365 enthält die Funktion „Baseline Security Mode“, die tenantweite Sicherheitsrichtlinien bereitstellt. Eine dieser Einstellungen – "Don't allow new custom scripts in SharePoint sites" – blockiert benutzerdefinierte Skripte dauerhaft für alle SharePoint- und OneDrive-Websites, wenn sie aktiviert ist.

WICHTIG: Wenn diese Richtlinie aktiv ist, werden Änderungen auf Website-Ebene (z. B. über PowerShell) blockiert. Sie müssen diese Richtlinie zuerst deaktivieren, bevor Sie Skripte auf Site-Ebene aktivieren können.

So greifen Sie auf die Einstellungen zu
  1. Melden Sie sich im Microsoft 365 Admin Center an.
  2. Wählen Sie in der linken Navigation „Alle anzeigen“ und anschließend „Einstellungen“.
  3. Öffnen Sie „Organisationseinstellungen“.
  4. Wechseln Sie zur Registerkarte „Sicherheit und Datenschutz“.
  5. Wählen Sie „Baseline Security Mode“.




  6. Klicken Sie auf „Open Baseline security mode“.
  7. Suchen Sie im Abschnitt „Authentication“ nach der Einstellung "Don't allow new custom scripts in SharePoint sites".
  8. Wenn diese aktiviert ist, schalten Sie sie aus.




  9. Speichern Sie Ihre Änderungen.

Hinweis: Sie benötigen die Rolle „SharePoint-Administrator“ (oder höher), um diese Einstellung zu verwalten.

Schritt 2 — Benutzerdefinierte Skripte über die SharePoint Online Management Shell aktivieren

Nachdem die tenantweite Richtlinie deaktiviert ist (oder nie aktiviert war), können Sie benutzerdefinierte Skripte auf einer bestimmten Websitesammlung aktivieren.

Schritt 2a: Verbindung zum Tenant herstellen

Öffnen Sie PowerShell und führen Sie folgenden Befehl aus:

Connect-SPOService -Url "https://-admin.sharepoint.com" -Interactive

Schritt 2b: Skripte auf der Ziel-Websitesammlung aktivieren

Führen Sie folgenden Befehl aus:

Set-SPOSite "https://.sharepoint.com/sites/" -DenyAddAndCustomizePages 0
0 bedeutet: Skripte sind erlaubt
1 bedeutet: Skripte sind blockiert

WICHTIG: Sie benötigen die Rolle SharePoint-Administrator – Site Owner-Rechte reichen nicht aus.


Schritt 3 — Aktivierung über PnP PowerShell

Alternativ können Sie PnP PowerShell verwenden. Dieser Ansatz verbindet sich direkt mit der Website und erfordert eine registrierte Entra ID-Anwendung mit entsprechenden Berechtigungen.

Schritt 3a: Verbindung herstellen

Connect-PnPOnline -Url "https://.sharepoint.com/sites/" -Interactive -ClientId

Schritt 3b: Skripte aktivieren

Set-PnPTenantSite -Identity "https://.sharepoint.com/sites/" -DenyAddAndCustomizePages:$false

false bedeutet: Skripte sind erlaubt
true bedeutet: Skripte sind blockiert


Ergebnis:

Benutzerdefinierte Skripte sind aktiviert
Die tenantweite Richtlinie blockiert keine Skripte mehr.
Die Ziel-Websitesammlung erlaubt benutzerdefinierte Skripte.
Teamsware Studio kann nun Lösungen erstellen und aktualisieren.

Der Hinweisdialog im Teamsware Studio blockiert die Erstellung nicht mehr.

Zusätzliche Hinweise

24-Stunden-Reset

Änderungen auf Website-Ebene sind standardmäßig temporär. Jede Aktivierung benutzerdefinierter Skripte auf einer Website wird innerhalb von 24 Stunden wieder auf „nicht erlaubt“ zurückgesetzt – es sei denn, die Baseline Security Mode-Richtlinie wird zuvor auf Tenant-Ebene deaktiviert.

Berechtigungen

Sie müssen SharePoint-Administrator oder Global-Administrator sein, um die PowerShell-Befehle auszuführen.
Site Owner-Rechte allein sind nicht ausreichend.

Für die Verwaltung des Baseline Security Mode benötigen Sie ebenfalls entsprechende Administratorrollen.

Hinweis im Teamsware Studio

Wenn Sie eine Teamsware Solution auf einer Website erstellen, auf der Skripte deaktiviert sind, zeigt Solution Studio einen Hinweisdialog an. Nach Deaktivierung der Baseline Security Mode-Richtlinie kann Teamsware Studio Skripte für die Website aktivieren.

Weiterführende Links