Lorsqu’on parle de gouvernance SharePoint, on pense souvent aux permissions, aux structures de sites ou aux règles de nommage. Pourtant, un élément fondamental est parfois relégué au second plan : l’identité visuelle.
Couleurs, contrastes, cohérence graphique… ces éléments influencent directement la perception des utilisateurs et leur adoption des outils. Le script spo-add-tenant-theme répond précisément à ce besoin en permettant de déployer des thèmes SharePoint personnalisés à l’échelle du tenant, de manière simple et maîtrisée.
Dans SharePoint Online, le thème ne se limite pas à une couleur de bannière.
Il impacte :
- les en-têtes de site
- les liens, boutons et accents visuels
- l’expérience utilisateur globale
- la cohérence avec la charte graphique de l’organisation
Sans thème personnalisé, on se retrouve souvent avec un mélange de sites bleus, violets ou gris, sans identité claire, ce qui nuit à la crédibilité de l’intranet et à l’adhésion des utilisateurs. SharePoint permet bien sûr de créer un thème via l’interface ou via des commandes ponctuelles, mais ces approches montrent vite leurs limites :
- difficile à documenter
- compliqué à reproduire entre environnements
- peu traçable dans le temps
- dépend fortement des personnes
C’est exactement là que le script apporte une vraie valeur.
Ce script PowerShell utilise PnP PowerShell pour enregistrer un thème personnalisé au niveau du tenant SharePoint.
Une fois le thème ajouté :
- il devient disponible pour tous les sites
- il peut être appliqué de manière cohérente
- il respecte les règles de contraste de SharePoint
- il s’intègre nativement à l’expérience moderne
Autrement dit, on transforme une personnalisation graphique en actif gouverné et réutilisable.

Ce type de capture est particulièrement parlant :
on constate immédiatement la différence en termes de lisibilité, de professionnalisme et de cohérence visuelle. Le site semble “appartenir” à l’organisation et non plus être un site générique Microsoft.
Le cœur du script, expliqué simplement
$adminSiteURL = "https://domain-admin.sharepoint.com/"
$userName = "chandani@domain.onmicrosoft.com"
$password = "********"
$secureStringPwd = $password | ConvertTo-SecureString -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential -ArgumentList $userName, $secureStringPwd
$themePalette = @{
"themePrimary" = "#b21212";
"themeLighterAlt" = "#fcf3f3";
"themeLighter" = "#f3d0d0";
"themeLight" = "#e8a9a9";
"themeTertiary" = "#d16060";
"themeSecondary" = "#bc2727";
"themeDarkAlt" = "#a11010";
"themeDark" = "#880e0e";
"themeDarker" = "#640a0a";
"neutralLighterAlt" = "#f8f8f8";
"neutralLighter" = "#f4f4f4";
"neutralLight" = "#eaeaea";
"neutralQuaternaryAlt" = "#dadada";
"neutralQuaternary" = "#d0d0d0";
"neutralTertiaryAlt" = "#c8c8c8";
"neutralTertiary" = "#c2c2c2";
"neutralSecondary" = "#858585";
"neutralPrimaryAlt" = "#4b4b4b";
"neutralPrimary" = "#333333";
"neutralDark" = "#272727";
"black" = "#1d1d1d";
"white" = "#ffffff";
"bodyBackground" = "#ffffff";
"bodyText" = "#333333";
}
$themeName = "Demo Branding (Red) SPO"
Function Login() {
[cmdletbinding()]
param([parameter(Mandatory = $true, ValueFromPipeline = $true)] $creds)
Write-Host "Connecting to Tenant Admin Site '$($adminSiteURL)'" -f Yellow
Connect-SPOService -Url $adminSiteURL -Credential $creds
Write-Host "Connecting successfully!..." -f Green
}
Function ApplyTheme {
try {
Write-Host "Applying theme..." -ForegroundColor Yellow
Add-SPOTheme -Identity $themeName -Palette $themePalette -IsInverted $false -Overwrite
Write-Host "Done! :)" -ForegroundColor Green
}
catch {
Write-Host "Getting error in applying theme:" $_.Exception.Message -ForegroundColor Red
}
}
Function StartProcessing {
Login($creds);
ApplyTheme
}
StartProcessing
Même sans être expert PowerShell, la logique est accessible :
- on définit un nom de thème (visible par les utilisateurs)
- on fournit une palette de couleurs structurée
- on indique s’il s’agit d’un thème clair ou inversé
- le thème est ajouté au tenant SharePoint
Une fois exécutée, cette commande rend le thème immédiatement disponible dans les paramètres des sites SharePoint.
L’élément clé : la palette de couleurs
Le script repose sur un objet de type palette, qui définit précisément :
- la couleur principale
- les variantes claires et foncées
- les couleurs de texte
- les accents et arrière‑plans
Cette structure garantit que SharePoint respecte automatiquement les règles d’accessibilité et de contraste, un point souvent négligé lorsque les couleurs sont choisies “à l’œil”.
Il est important de noter que le script :
- n’applique pas automatiquement le thème à tous les sites
- ne modifie pas les sites existants sans action volontaire
- ne contourne aucune règle SharePoint
Il se contente d’enregistrer le thème. L’application reste une décision maîtrisée, site par site ou via une autre automatisation.
Cette approche respecte pleinement les bonnes pratiques de gouvernance.
Dans de nombreux projets, le thème SharePoint est décidé tardivement, parfois même après le lancement officiel de l’intranet. Cela entraîne :
- des retouches complexes
- des sites visuellement incohérents
- une expérience utilisateur fragmentée
Utiliser le script dès le début du projet permet d’ancrer l’identité visuelle comme un élément structurant, au même titre que l’architecture ou les permissions. Le script est un excellent exemple de ce que les PnP Script Samples font de mieux : simplifier, fiabiliser et professionnaliser des tâches essentielles, souvent sous‑estimées. Il ne se contente pas d’ajouter des couleurs : il participe directement à l’adoption, à la cohérence et à la crédibilité de SharePoint dans l’organisation. Et dans un monde où l’expérience utilisateur est devenue centrale, ce n’est clairement pas un détail.
