Office/Microsoft 365 Benutzereinschränkungen

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