Site-Vorlagen mit Ordnerstruktur erstellen
In diesem Video geht es darum, wie du Site-Vorlagen mit vordefinierter Ordnerstruktur in SharePoint Online erstellen kannst. Die Vorlagen werden Admins und Benutzern bei der Erstellung neuer Sites vorgeschlagen. So kannst du zum Beispiel sicherstellen, dass Projektsites immer die richtige Ordnerstruktur besitzen.
Benötigst du Unterstützung?
Melde dich bei uns!
Im Video kommen zwei Scripts sowie eine JSON-Datei zum Einsatz, die du hier findest. Innerhalb der JSON-Datei wird die Ordnerstruktur wie im Video gezeigt definiert.
SiteScript.json
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/site-design-script-actions.schema.json",
"actions": [
{
"verb": "createSPList",
"listName": "[[LDokumente0001_listName]]",
"templateType": 101,
"color": "[[LDokumente0001_color]]",
"icon": "[[LDokumente0001_icon]]",
"addNavLink": "[[LDokumente0001_addNavLink]]",
"description": "[[LDokumente0001_description]]",
"identity": "LDokumente0001",
"subactions": [
{
"verb": "addFolder",
"path": "00_Kommunikation"
},
{
"verb": "addFolder",
"path": "00_Kommunikation/Intern"
},
{
"verb": "addFolder",
"path": "00_Kommunikation/Extern"
},
{
"verb": "addFolder",
"path": "01_Planung"
},
{
"verb": "addFolder",
"path": "02_Projektverlauf"
},
{
"verb": "addFolder",
"path": "03_Lieferanten"
},
{
"verb": "addFolder",
"path": "04_Sonstiges"
}
]
}
],
"bindings": {
"LDokumente0001_listName": {
"source": "Input",
"defaultValue": "Dokumente"
},
"LDokumente0001_icon": {
"source": "Input",
"defaultValue": "0"
},
"LDokumente0001_description": {
"source": "Input",
"defaultValue": ""
},
"LDokumente0001_color": {
"source": "Input",
"defaultValue": "0"
},
"LDokumente0001_addNavLink": {
"source": "Input",
"defaultValue": "true"
}
}
}
Mit diesem Script wird die JSON-Datei zu einem Site Script hinzugefügt, woraus wiederum ein Site Design erstellt wird. Beachte, dass du einige Anpassungen im Script vornehmen musst.
Create-SPOSiteScriptAndDesign.ps1
#Modul installieren, wenn nicht vorhanden
if (!(Get-Module -ListAvailable -Name Microsoft.Online.SharePoint.PowerShell)) {
Install-Module Microsoft.Online.SharePoint.PowerShell
}
#Authentifizierung mit Global Admin oder SharePoint Admin
Connect-SPOService -Url "https://tenant-admin.sharepoint.com"
#Pfad zur JSON ggf. anpassen
$SiteScript = Add-SPOSiteScript -Title "Projektvorlage" -Description "Erstellt eine Site mit der Ordnerstruktur für Projekte." -Content (Get-Content "C:\Temp\SiteScript.json" -Raw)
#WebTemplate: 64 = Team Site, 68 = Communication Site
Add-SPOSiteDesign -Title $SiteScript.Title -SiteScripts $SiteScript.Id -Description $SiteScript.Description -WebTemplate "64"
Mit diesem Script lässt sich ein bestehendes Site Script anpassen. Beachte auch hier wieder die nötigen Anpassungen im Script.
Update-SPOSiteScript.ps1
#Authentifizierung mit Global Admin oder SharePoint Admin
Connect-SPOService -Url "https://itestlio-admin.sharepoint.com"
#Site Scripts auslesen
Get-SPOSiteScript
#ID des zu bearbeitenden Site Scripts hier einfügen
$SiteScriptId = "12345678-abcd-1234-abcd-12345678abcd"
#legt das aktuelle Site Script für die Projektvorlage unter C:\Temp\SiteScript.json ab
Get-SPOSiteScript -Identity $SiteScriptId | Out-File "C:\Temp\SiteScript-$($SiteScriptId).json"
#die Datei muss jetzt lokal bearbeitet werden, um die Ordnerstruktur anzupassen
#nach der Bearbeitung wird das Site Script in SharePoint Online aktualisiert
#dazu muss erst der Content-Block aus der JSON extrahiert werden
#Datei als Text einlesen
$FileContent = Get-Content -Path "C:\Temp\SiteScript-$($SiteScriptId).json" -Raw
#Finden des Index der ersten öffnenden geschweiften Klammer
$FirstBraceIndex = $FileContent.IndexOf('{')
#Finden des Index der letzten schließenden geschweiften Klammer
$LastBraceIndex = $FileContent.LastIndexOf('}')
#Extrahieren des JSON-Blocks
if ($FirstBraceIndex -ge 0 -and $LastBraceIndex -ge 0 -and $LastBraceIndex -gt $FirstBraceIndex) {
$JSONBlock = $FileContent.Substring($FirstBraceIndex, $LastBraceIndex - $FirstBraceIndex + 1)
} else {
Write-Output "Kein gültiger JSON-Block gefunden."
}
#Aktualisieren des Site Scripts in SPO
Set-SPOSiteScript -Identity $SiteScriptId -Content $JSONBlock
#neu erstellte Sites nutzen nun das neue Site Script