Hier ein paar Einstellungen zur Einschränkung der Benutzer
1. SharePoint-Seitenerstellung und Gruppenerstellung einschränken
Websiteerstellung komplett kontrollieren
Navigation: SharePoint Admin Center > Einstellungen > Websiteerstellung
Einstellungen:
Benutzer dürfen Websites erstellen:
- Aus SharePoint-Startseite: Aus
- Aus OneDrive: Aus
- Moderne Teamwebsites: Aus
- Kommunikationswebsites: Aus
Alternative - Nur bestimmte Benutzer:
- Option: "Nur Benutzer mit Berechtigung"
- Sicherheitsgruppe erstellen: "SharePoint-Site-Creators"
- Nur diese Gruppe darf Sites erstellen
PowerShell für granulare Kontrolle:
Connect-SPOService -Url https://[tenant]-admin.sharepoint.com
# Websiteerstellung komplett deaktivieren
Set-SPOTenant -SelfServiceSiteCreationDisabled $true
# Oder nur für bestimmte Benutzer erlauben
Set-SPOTenant -SelfServiceSiteCreationDisabled $false
Set-SPOTenant -SelfServiceSiteCreationPolicy "RequireSecurityGroup"
Set-SPOTenant -SelfServiceSiteCreationSecurityGroup "c5c5c5c5-c5c5-c5c5-c5c5-c5c5c5c5c5c5"
Microsoft 365-Gruppenerstellung einschränken
Navigation: Azure AD Portal > Gruppen > Allgemeine Einstellungen
Kritische Einstellung:
Benutzer können Microsoft 365-Gruppen erstellen:
- In Azure-Portalen: Nein
- In Outlook: Nein
- In SharePoint: Nein
- In Teams: Nein
- In anderen Diensten: Nein
Ausnahmegruppe definieren:
- Gruppenname: "M365-Group-Creators"
- Nur Mitglieder dieser Gruppe dürfen Gruppen erstellen
PowerShell-Konfiguration (detaillierter):
# Verbindung zu Azure AD
Connect-AzureAD
# Gruppe für berechtigte Ersteller anlegen
$GroupName = "M365-Group-Creators"
$AllowGroupCreation = "False"
# Einstellungen abrufen
$settingsObjectID = (Get-AzureADDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).id
if(!$settingsObjectID)
{
$template = Get-AzureADDirectorySettingTemplate | Where-object {$_.displayname -eq "group.unified"}
$settingsCopy = $template.CreateDirectorySetting()
New-AzureADDirectorySetting -DirectorySetting $settingsCopy
$settingsObjectID = (Get-AzureADDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).id
}
$settingsCopy = Get-AzureADDirectorySetting -Id $settingsObjectID
# Gruppenerstellung deaktivieren
$settingsCopy["EnableGroupCreation"] = $AllowGroupCreation
# Ausnahmegruppe setzen
$settingsCopy["GroupCreationAllowedGroupId"] = (Get-AzureADGroup -SearchString $GroupName).objectid
# Einstellungen anwenden
Set-AzureADDirectorySetting -Id $settingsObjectID -DirectorySetting $settingsCopy
2. SharePoint-Bibliotheken und Ordnererstellung einschränken
Dokumentbibliotheken-Erstellung verhindern
Navigation: SharePoint-Site > Websiteeinstellungen > Websiteberechtigungen
Berechtigungsstufen anpassen:
Standard "Bearbeiten"-Berechtigung ändern:
1. Einstellungen > Berechtigungsstufen
2. "Bearbeiten" kopieren als "Bearbeiten ohne Struktur"
3. Entfernen:
- Listen erstellen und anpassen ✗
- Ordner erstellen ✗
- Unterwebsites erstellen ✗
Neue Berechtigungsstufe:
Name: "Nur Dokumente bearbeiten"
Berechtigungen:
- Elemente hinzufügen ✓
- Elemente bearbeiten ✓
- Elemente löschen ✓
- Elemente anzeigen ✓
- Listen durchsuchen ✓
- Ordner erstellen ✗
- Listen erstellen ✗
Ordnererstellung in bestehenden Bibliotheken verhindern
PowerShell-Skript für alle Sites:
Connect-PnPOnline -Url https://[tenant].sharepoint.com/sites/[sitename] -Interactive
# Für eine spezifische Bibliothek
$list = Get-PnPList -Identity "Dokumente"
$list.EnableFolderCreation = $false
$list.Update()
Invoke-PnPQuery
# Für alle Bibliotheken in einer Site
$lists = Get-PnPList | Where-Object {$_.BaseTemplate -eq 101}
foreach($list in $lists) {
$list.EnableFolderCreation = $false
$list.Update()
}
Invoke-PnPQuery
Bibliothekseinstellungen per JSON-Formatierung
Modern Experience - View Formatting:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
"hideColumnHeader": false,
"hideSelection": false,
"commandBarProps": {
"commands": [
{
"key": "new",
"hide": true
},
{
"key": "newFolder",
"hide": true
}
]
}
}
3. OneDrive-Einschränkungen
Synchronisierungseinschränkungen
Navigation: OneDrive Admin Center > Sync
Einstellungen:
Synchronisierung blockieren für:
- Nicht verwaltete Geräte ✓
- Bestimmte Dateitypen: .exe, .bat, .cmd, .ps1
- Mac-Geräte ✗ (optional)
Synchronisierung nur erlauben für:
- Domänengebundene PCs ✓
- Spezifische Domänen: FIRMA.local
Upload blockieren bei:
- Dateien größer als: 15 GB
- Bestimmte Dateitypen
Registry-Einstellungen per GPO:
[HKLM\SOFTWARE\Policies\Microsoft\OneDrive]
"BlockExternalSync"=dword:00000001
"AllowTenantList"="TenantID1;TenantID2"
"FilesOnDemandEnabled"=dword:00000001
"DisablePersonalSync"=dword:00000001
OneDrive-Freigabe einschränken
Navigation: OneDrive Admin Center > Freigabe
Externe Freigabe:
- OneDrive: "Nur Personen in [Organisation]"
- Freigabe per Link: Deaktiviert
Standardberechtigungen:
- Dateien: Anzeigen
- Ordner: Anzeigen
- Bearbeitung nur nach expliziter Freigabe
Weitere Einstellungen:
- "Jeder"-Links deaktivieren ✓
- Ablauf für Gastlinks: 30 Tage
- Verifizierungscode für externe Benutzer ✓
4. Teams-Kanäle und private Kanäle einschränken
Kanalerstellung kontrollieren
Navigation: Teams Admin Center > Teams > Teamrichtlinien
Neue Richtlinie erstellen:
Name: "Eingeschränkte Kanalverwaltung"
Einstellungen:
- Private Kanäle erstellen: Aus
- Freigegebene Kanäle erstellen: Aus
- Standardkanäle erstellen: Nur Besitzer
- Kanäle löschen: Nur Besitzer
- Kanäle bearbeiten: Nur Besitzer
Zuweisen an:
- Standardbenutzer-Gruppe
PowerShell für Bulk-Zuweisung:
Connect-MicrosoftTeams
# Richtlinie erstellen
New-CsTeamsChannelsPolicy -Identity "RestrictedChannels" `
-AllowPrivateChannelCreation $false `
-AllowSharedChannelCreation $false `
-AllowChannelCreation $false
# Allen Benutzern zuweisen
Get-CsOnlineUser | Grant-CsTeamsChannelsPolicy -PolicyName "RestrictedChannels"
5. SharePoint-Hub-Sites und Struktur erzwingen
Hub-Site-Architektur implementieren
Konzept: Zentrale Hub-Sites mit kontrollierten Untersites
PowerShell-Setup:
# Hub-Site erstellen
$hubSite = New-SPOSite -Url https://[tenant].sharepoint.com/sites/Haupthub `
-Title "Haupt-Hub" -Template "STS#3" -Owner admin@firma.de
Register-SPOHubSite -Site $hubSite.Url
# Pflicht-Zuordnung zu Hub
Set-SPOHubSite -Identity $hubSite.Url `
-RequiresJoinApproval $true `
-PermissionsSyncState "ManualSync"
# Alle neuen Sites automatisch zuordnen
$sites = Get-SPOSite -Limit All
foreach ($site in $sites) {
Add-SPOHubSiteAssociation -Site $site.Url -HubSite $hubSite.Url
}
Site-Designs erzwingen
Navigation: SharePoint Admin Center > Site-Designs
JSON-Template für eingeschränkte Sites:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/site-design-script-actions.schema.json",
"actions": [
{
"verb": "setRegionalSettings",
"timeZone": 4,
"locale": 1031
},
{
"verb": "setSiteExternalSharingCapability",
"capability": "Disabled"
},
{
"verb": "createSPList",
"listName": "Dokumente",
"templateType": 101,
"subactions": [
{
"verb": "setDescription",
"description": "Zentrale Dokumentenbibliothek - Keine weiteren Bibliotheken erstellen!"
},
{
"verb": "addSPField",
"fieldType": "Text",
"displayName": "Abteilung",
"isRequired": true
}
]
},
{
"verb": "removeNavLink",
"displayName": "Notizbuch",
"isWebRelative": true
}
],
"bindata": {},
"version": 1
}
6. Governance-Richtlinien und Naming Conventions
Benennungsrichtlinie für Gruppen
Navigation: Azure AD > Gruppen > Benennungsrichtlinie
Präfix-Suffix-Regel:
- Präfix: [Abteilung]-[Jahr]-
- Suffix: -[Standort]
- Beispiel: IT-2025-Projekt-Berlin
Blockierte Wörter:
- CEO, Geschäftsführung, Vorstand
- Admin, Administrator
- Privat, Persönlich
- Test (außer in DEV-Umgebung)
Ablaufrichtlinien für Gruppen
Navigation: Azure AD > Gruppen > Ablauf
Gruppenlebensdauer: 365 Tage
Benachrichtigungen:
- 30 Tage vor Ablauf
- 15 Tage vor Ablauf
- 1 Tag vor Ablauf
Automatische Verlängerung wenn:
- Aktivität in letzten 30 Tagen
- Mindestens 2 aktive Mitglieder
7. Information Barriers (für strikte Trennung)
Segmente definieren
PowerShell-Konfiguration:
Connect-IPPSSession
# Segmente erstellen
New-OrganizationSegment -Name "Vertrieb" `
-UserGroupFilter "Department -eq 'Sales'"
New-OrganizationSegment -Name "Entwicklung" `
-UserGroupFilter "Department -eq 'Development'"
New-OrganizationSegment -Name "HR" `
-UserGroupFilter "Department -eq 'HR'"
# Barrier-Richtlinien
New-InformationBarrierPolicy -Name "Vertrieb-Entwicklung-Trennung" `
-AssignedSegment "Vertrieb" `
-SegmentsBlocked "Entwicklung" `
-State Active
# Richtlinien anwenden
Start-InformationBarrierPoliciesApplication
8. Erweiterte SharePoint-Quotas und Limits
Site-Collection-Quotas
PowerShell:
# Quota-Template erstellen
$quota = New-Object Microsoft.SharePoint.Administration.SPQuotaTemplate
$quota.Name = "Abteilungs-Limit"
$quota.StorageMaximumLevel = 10GB
$quota.StorageWarningLevel = 8GB
$quota.UserCodeMaximumLevel = 300
$quota.UserCodeWarningLevel = 250
# Auf Sites anwenden
Set-SPOSite -Identity https://[tenant].sharepoint.com/sites/abteilung `
-StorageQuota 10240 `
-StorageQuotaWarningLevel 8192 `
-ResourceQuota 300 `
-ResourceQuotaWarningLevel 250
Versionslimits setzen
# Für alle Dokumentbibliotheken
$sites = Get-SPOSite -Limit All
foreach ($site in $sites) {
Connect-PnPOnline -Url $site.Url -Interactive
$lists = Get-PnPList | Where {$_.BaseTemplate -eq 101}
foreach ($list in $lists) {
Set-PnPList -Identity $list `
-EnableVersioning $true `
-MajorVersions 50 `
-MinorVersions 10 `
-EnableMinorVersions $true `
-ForceCheckout $true
}
}
9. Compliance und Aufbewahrung als Einschränkung
Aufbewahrungssperre
Navigation: Purview Compliance > Informationsgovernance > Aufbewahrungsbezeichnungen
Bezeichnung: "Unveränderlich - 7 Jahre"
Einstellungen:
- Inhalt beibehalten: 7 Jahre
- Am Ende: Nichts tun
- Während Aufbewahrung:
- Bearbeitung blockieren ✓
- Löschung blockieren ✓
Automatische Anwendung auf:
- Alle Verträge
- Finale Dokumente
- Genehmigte Richtlinien
Preservation Lock (unwiderruflich!)
# VORSICHT: Kann nicht rückgängig gemacht werden!
Set-RetentionCompliancePolicy -Identity "Kritische-Dokumente" `
-RestrictiveRetention $true
10. App-Berechtigungen einschränken
SharePoint-Apps kontrollieren
Navigation: SharePoint Admin Center > Weitere Features > Apps
App-Berechtigungen:
- Apps aus dem Store: Deaktiviert
- Apps von Endbenutzern: Deaktiviert
- Nur genehmigte Apps erlauben
App-Katalog einrichten:
- Zentraler App-Katalog nur für IT
- Keine Site-Collection-App-Kataloge
Teams-Apps einschränken
Navigation: Teams Admin Center > Teams-Apps > Berechtigungsrichtlinien
Neue Richtlinie: "Eingeschränkte Apps"
Microsoft-Apps: Alle erlauben
Drittanbieter-Apps: Alle blockieren
Benutzerdefinierte Apps: Blockieren
Ausnahmen (explizit erlauben):
- Spezifische Business-Apps
- Genehmigte Integrationen
11. PowerShell-Automatisierung für Governance
Komplettes Governance-Skript
# Master-Skript für SharePoint/OneDrive Governance
param(
[string]$TenantName,
[string]$AdminEmail
)
# Module laden
Import-Module Microsoft.Online.SharePoint.PowerShell
Import-Module PnP.PowerShell
Import-Module AzureAD
# Verbindungen
$adminUrl = "https://$TenantName-admin.sharepoint.com"
Connect-SPOService -Url $adminUrl
Connect-PnPOnline -Url $adminUrl -Interactive
Connect-AzureAD
# 1. Gruppen-Erstellung einschränken
Write-Host "Beschränke Gruppenerstellung..." -ForegroundColor Yellow
$template = Get-AzureADDirectorySettingTemplate | Where-Object {$_.DisplayName -eq "Group.Unified"}
$setting = $template.CreateDirectorySetting()
$setting["EnableGroupCreation"] = $false
$setting["GroupCreationAllowedGroupId"] = (Get-AzureADGroup -SearchString "IT-Admins").ObjectId
New-AzureADDirectorySetting -DirectorySetting $setting
# 2. Site-Erstellung deaktivieren
Write-Host "Deaktiviere Site-Erstellung..." -ForegroundColor Yellow
Set-SPOTenant -SelfServiceSiteCreationDisabled $true
# 3. Externe Freigabe einschränken
Write-Host "Schränke externe Freigabe ein..." -ForegroundColor Yellow
Set-SPOTenant -SharingCapability Disabled
Set-SPOTenant -OneDriveSharingCapability Disabled
# 4. Standardberechtigungen anpassen
Write-Host "Passe Standardberechtigungen an..." -ForegroundColor Yellow
$sites = Get-SPOSite -Limit All
foreach ($site in $sites) {
Set-SPOSite -Identity $site.Url -DenyAddAndCustomizePages $true
Set-SPOSite -Identity $site.Url -DisableCompanyWideSharingLinks Enabled
}
# 5. Audit aktivieren
Write-Host "Aktiviere vollständiges Auditing..." -ForegroundColor Yellow
Set-SPOTenant -UnifiedAuditLogIngestionEnabled $true
# 6. Report generieren
$report = @()
$report += "Governance-Einstellungen angewendet am: $(Get-Date)"
$report += "Gruppenerstellung: Eingeschränkt"
$report += "Site-Erstellung: Deaktiviert"
$report += "Externe Freigabe: Deaktiviert"
$report += "Betroffene Sites: $($sites.Count)"
$report | Out-File "Governance-Report-$(Get-Date -Format 'yyyyMMdd').txt"
Send-MailMessage -To $AdminEmail -Subject "SharePoint Governance angewendet" -Body ($report -join "`n")
Write-Host "Governance-Einstellungen erfolgreich angewendet!" -ForegroundColor Green
12. Best Practices
Argumentation für Einschränkungen
Vorteile der Kontrolle:
1. Vermeidung von Schatten-IT
2. Compliance-Anforderungen erfüllen
3. Klare Datenstruktur
4. Reduzierte Administrationskosten
5. Bessere Auffindbarkeit von Informationen
Risiken ohne Kontrolle:
- Wildwuchs von Teams/Sites
- Datenverlust durch unkontrollierte Freigaben
- Compliance-Verstöße
- Ineffiziente Zusammenarbeit
- Schwierige Migration/Backup
Stufenmodell vorschlagen
Stufe 1 - Basis (Woche 1-2):
- Gruppenerstellung einschränken
- Externe Freigabe deaktivieren
- Basis-Quotas einrichten
Stufe 2 - Erweitert (Woche 3-4):
- Hub-Sites implementieren
- Naming Conventions
- Aufbewahrungsrichtlinien
Stufe 3 - Vollständig (Woche 5-6):
- Information Barriers
- Komplette App-Kontrolle
- Automatisierte Governance