
Sitecore Powershell Extensions (SPE) est un module qui fournit une interface de ligne de commande et un environnement de script pour intéragir avec la plateforme Sitecore et ses objets, ainsi que plusieurs nouveaux outils. Il a été développé par Adam Najmanowicz et Michael West et est par exemple un prérequis pour installer Sitecore Experience Accelerator.
Vous pouvez télécharger ce module depuis le marketplace et aussi depuis la section téléchargement de Sitecore.
Quand SPE est installé, plusieurs nouveaux objets sont visibles sur le tableau de bord de Sitecore

Powershell ToolboPowershell Toolbox est une collection d’outils prêts à l’emploi pour divers usages:
- Creation d’un Anti-Package
- Générateur de données en masse
- Restaurateur d’articles en masse
- Changeur de modèle en masse
- Importateur de données
- Trouver et remplacer
- Visionneur d’index
- Gestionnaire de sessions d’arrière-plan PowerShell
- Recréer le site à partir du plan du site (sitemap)
- Reconstruire les points d’intégration de script
- Gestionnaire de session
- Gestionnaire de site SXA
- Gestionnaire des tâches
La console Powershell est la console sur laquelle vous pouvez écrire et exécuter vos propres scripts Sitecore Powershell.
Sa documentation est très complète, avec quelques bons examples de code.
Voici quelques scripts simples et utiles pour vous aider à démarrer et vous montrer comment utiliser SPE
Déverrouillez tous les éléments sous l’arborescence “Content”
Get-ChildItem master:\Content -Recurse |
Where-Object { $_.Locking.IsLocked() } |
% { $_.Locking.Unlock() }
Répertoriez tous les enfants d’un élément (ex: content) et depuis combien de jours ils ont été modifiés
Get-ChildItem master:\Content -Recurse |
Format-Table -auto Name,
@{Label="Modified"; Expression={
[datetime]::Now.Subtract($_.__Updated).Days} }
Répertoriez tous les enfants d’un élément qui a été mis à jour au cours de la semaine dernière
Get-ChildItem master:\Content -Recurse |
Where-Object
{ $_._Updated -gt [datetime]::Now.AddDays(-7) } |
Format-Table -property DisplayName,
"__Updated", "__Updated By", {$.Paths.Path}
Supprimer les éléments multimédias inutilisés datant de plus d’un mois et qui n’ont pas de référence
Get-ChildItem -Path "master:\sitecore\media library" -Recurse |
Where-Object { $_.TemplateID -ne [Sitecore.TemplateIDs]::MediaFolder } |
Where-Object { $_._Owner -ne "sitecore\admin"
-and $._Updated -lt [datetime]::Today.AddDays(-30) } |
Where-Object { [Sitecore.Globals]::LinkDatabase.GetReferrerCount($) -eq 0 } |
remove-Item
Obtenez tous les utilisateurs avec un e-mail vide dans leur profil
Get-User -Filter * | Where-Object { !$_.Profile.Email }
Définissez un e-mail pour un utilisateur spécifique (ici sitecore \ admin)
Set-User
-Identity sitecore\admin
-Email sitecore.admin@sigma.se